Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python

Các giá trị tuyệt đối thường được sử dụng trong toán học, vật lý và kỹ thuật. Mặc dù định nghĩa của trường về một giá trị tuyệt đối có vẻ đơn giản, bạn thực sự có thể nhìn vào khái niệm từ nhiều góc độ khác nhau. Nếu bạn có ý định làm việc với các giá trị tuyệt đối trong Python, thì bạn đã đến đúng nơi.

Trong hướng dẫn này, bạn sẽ học cách:

  • Thực hiện hàm giá trị tuyệt đối từ đầuabsolute value function from scratch
  • Sử dụng chức năng
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 tích hợp trong Pythonbuilt-in
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 function
    in Python
  • Tính toán các giá trị tuyệt đối của các sốnumbers
  • Gọi
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 trên các mảng numpy và sê -ri gấu trúcNumPy arrays and pandas series
  • Tùy chỉnh hành vi của
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 trên các đối tượng
    the behavior of
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 on objects

Don Tiết lo lắng nếu kiến ​​thức toán học của bạn về hàm giá trị tuyệt đối là một chút gỉ. Bạn sẽ bắt đầu bằng cách làm mới bộ nhớ của mình trước khi đi sâu hơn vào mã Python. Điều đó nói rằng, hãy thoải mái bỏ qua phần tiếp theo và nhảy ngay vào các chi tiết nitty-gritty theo sau.

Xác định giá trị tuyệt đối

Giá trị tuyệt đối cho phép bạn xác định kích thước hoặc cường độ của một đối tượng, chẳng hạn như một số hoặc một vectơ, bất kể hướng của nó. Số thực có thể có một trong hai hướng khi bạn bỏ qua số không: chúng có thể là dương hoặc âm. Mặt khác, các số và vectơ phức tạp có thể có nhiều hướng hơn.size or magnitude of an object, such as a number or a vector, regardless of its direction. Real numbers can have one of two directions when you ignore zero: they can be either positive or negative. On the other hand, complex numbers and vectors can have many more directions.

Xem xét một phép đo nhiệt độ như một ví dụ. Nếu nhiệt kế đọc -12 ° C, thì bạn có thể nói nó là mười hai độ Celsius dưới mức đóng băng. Lưu ý cách bạn phân hủy nhiệt độ trong câu cuối cùng thành một cường độ, mười hai và một dấu hiệu. Cụm từ dưới mức đóng băng có nghĩa là giống như dưới 0 độ C. Kích thước nhiệt độ hoặc giá trị tuyệt đối giống hệt với giá trị tuyệt đối của độ ấm hơn nhiều +12 ° C.

Sử dụng ký hiệu toán học, bạn có thể xác định giá trị tuyệt đối của 𝑥 là hàm piecewise, hoạt động khác nhau tùy thuộc vào phạm vi của các giá trị đầu vào. Một biểu tượng phổ biến cho giá trị tuyệt đối bao gồm hai đường thẳng đứng:

Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python
Giá trị tuyệt đối được định nghĩa là hàm piecewise

Hàm này trả về giá trị lớn hơn hoặc bằng 0 mà không thay đổi. Mặt khác, các giá trị nhỏ hơn 0 có dấu hiệu bị lật từ điểm trừ sang cộng. Về mặt đại số, điều này tương đương với việc lấy căn bậc hai của một số bình phương:

Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python
Giá trị tuyệt đối được xác định theo đại số

Khi bạn vuông một số thực, bạn luôn nhận được kết quả tích cực, ngay cả khi số mà bạn bắt đầu là âm. Ví dụ, bình phương của -12 và bình phương 12 có cùng giá trị, bằng 144. Sau đó, khi bạn tính toán căn bậc hai của 144, bạn sẽ chỉ nhận được 12 mà không có dấu trừ.

Về mặt hình học, bạn có thể nghĩ về một giá trị tuyệt đối là khoảng cách từ gốc, bằng không trên một dòng số trong trường hợp đọc nhiệt độ từ trước:distance from the origin, which is zero on a number line in the case of the temperature reading from before:

Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python
Giá trị tuyệt đối trên một dòng số

Để tính khoảng cách này, bạn có thể trừ nguồn gốc từ việc đọc nhiệt độ (-12 ° C -0 ° C = -12 ° C) hoặc theo cách khác (0 ° C -(-12 ° C) = +12 ° C ), và sau đó bỏ dấu hiệu của kết quả. Trừ số 0 không tạo ra nhiều sự khác biệt ở đây, nhưng điểm tham chiếu đôi khi có thể được thay đổi. Đó là trường hợp của các vectơ bị ràng buộc với một điểm cố định trong không gian, trở thành nguồn gốc của chúng.

Các vectơ, giống như các số, truyền tải thông tin về hướng và độ lớn của một đại lượng vật lý, nhưng trong nhiều hơn một chiều. Ví dụ, bạn có thể thể hiện vận tốc của một bông tuyết rơi như một vectơ ba chiều:direction and the magnitude of a physical quantity, but in more than one dimension. For example, you can express the velocity of a falling snowflake as a three-dimensional vector:

Vectơ này chỉ ra vị trí hiện tại của Bông tuyết so với nguồn gốc của hệ tọa độ. Nó cũng cho thấy hướng tuyết và tốc độ chuyển động qua không gian. Vector càng dài, cường độ của tốc độ tuyết càng lớn. Miễn là tọa độ của các điểm ban đầu và thiết bị đầu cuối của vector được biểu thị bằng mét, việc tính chiều dài của nó sẽ giúp bạn có tốc độ của Snowflake, được đo bằng mét trên mỗi đơn vị thời gian.

Độ dài của một vectơ, còn được gọi là cường độ của nó, là khoảng cách giữa các điểm ban đầu và đầu cuối của nó, và 𝐵, mà bạn có thể tính toán bằng cách sử dụng định mức Euclide:length of a vector, also known as its magnitude, is the distance between its initial and terminal points, 𝐴 and 𝐵, which you can calculate using the Euclidean norm:

Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python
Chiều dài của một vectơ ràng buộc như một chuẩn mực Euclide

Công thức này tính toán chiều dài của vectơ chiều, bằng cách tổng các bình phương của sự khác biệt giữa tọa độ của các điểm 𝐴 và 𝐵 trong mỗi chiều được lập chỉ mục. Đối với một vectơ miễn phí, điểm ban đầu, 𝐴, trở thành nguồn gốc của hệ tọa độ, hoặc 0, đơn giản hóa công thức, vì bạn chỉ cần vuông tọa độ của vectơ.

Nhớ lại định nghĩa đại số của một giá trị tuyệt đối. Đối với các con số, đó là căn bậc hai của một số bình phương. Bây giờ, khi bạn thêm nhiều kích thước vào phương trình, bạn sẽ kết thúc với công thức cho định mức Euclide, được hiển thị ở trên. Vì vậy, giá trị tuyệt đối của một vectơ tương đương với chiều dài của nó!

Được rồi. Bây giờ bạn đã biết khi nào các giá trị tuyệt đối có thể hữu ích, đó là thời gian để thực hiện chúng trong Python!

Thực hiện hàm giá trị tuyệt đối trong Python

Để thực hiện hàm giá trị tuyệt đối trong Python, bạn có thể lấy một trong các định nghĩa toán học trước đó và dịch nó thành mã. Chẳng hạn, chức năng Piecewise có thể trông như thế này:

def absolute_value(x):
    if x >= 0:
        return x
    else:
        return -x

Bạn sử dụng một câu lệnh có điều kiện để kiểm tra xem số đã cho được biểu thị bằng chữ cái

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
5 lớn hơn hoặc bằng không. Nếu vậy, bạn sẽ trả về cùng một số. Nếu không, bạn lật dấu hiệu số. Bởi vì chỉ có hai kết quả có thể xảy ra ở đây, bạn có thể viết lại chức năng trên bằng cách sử dụng một biểu thức có điều kiện thoải mái phù hợp trên một dòng:

def absolute_value(x):
    return x if x >= 0 else -x

Nó chính xác là hành vi giống như trước đây, chỉ được thực hiện theo cách nhỏ gọn hơn một chút. Các biểu thức có điều kiện rất hữu ích khi bạn không có nhiều logic đi vào hai nhánh thay thế trong mã của bạn.

Định nghĩa đại số của một giá trị tuyệt đối cũng khá đơn giản để thực hiện trong Python:

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))

Đầu tiên, bạn nhập hàm căn bậc hai từ mô -đun

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
6 và sau đó gọi nó trên số đã cho được nâng lên công suất của hai. Hàm năng lượng được xây dựng ngay vào Python, vì vậy bạn không phải nhập khẩu. Ngoài ra, bạn có thể tránh hoàn toàn câu lệnh
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
7 bằng cách tận dụng toán tử số mũ Python, (
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
8), có thể mô phỏng chức năng gốc căn bậc hai:

def absolute_value(x):
    return (x**2) ** 0.5

Đây là một loại thủ thuật toán học vì sử dụng số mũ phân đoạn tương đương với việc tính toán gốc của một số. Trong trường hợp này, bạn lấy một số bình phương vào công suất của một nửa (0,5) hoặc một trên hai (½), giống như tính toán căn bậc hai. Lưu ý rằng cả hai triển khai Python dựa trên định nghĩa đại số đều bị thiếu hụt một chút:

>>>

>>> def absolute_value(x):
...     return (x**2) ** 0.5

>>> absolute_value(-12)
12.0

>>> type(12.0)
<class 'float'>

Bạn luôn kết thúc với một số điểm nổi, ngay cả khi bạn bắt đầu với một số nguyên. Vì vậy, nếu bạn muốn bảo tồn kiểu dữ liệu gốc của một số, thì bạn có thể thích triển khai dựa trên piecewise thay thế.

Miễn là bạn ở trong các số nguyên và số điểm nổi, bạn cũng có thể viết một triển khai hơi ngớ ngẩn của hàm giá trị tuyệt đối bằng cách tận dụng biểu diễn văn bản của các số trong Python:

def absolute_value(x):
    return float(str(x).replace("-", ""))

Bạn chuyển đổi đối số chức năng,

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
5, thành chuỗi Python bằng cách sử dụng hàm
def absolute_value(x):
    return (x**2) ** 0.5
0 tích hợp. Điều này cho phép bạn thay thế dấu hiệu trừ hàng đầu, nếu có, với một chuỗi trống. Sau đó, bạn chuyển đổi kết quả thành số điểm nổi với
def absolute_value(x):
    return (x**2) ** 0.5
1.

Thực hiện chức năng giá trị tuyệt đối từ đầu trong Python là một bài tập học tập đáng giá. Tuy nhiên, trong các ứng dụng thực tế, bạn nên tận dụng chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 tích hợp đi kèm với Python. Bạn sẽ tìm hiểu lý do tại sao trong phần tiếp theo.

Sử dụng hàm from math import sqrt def absolute_value(x): return sqrt(pow(x, 2)) 2 tích hợp với các số

Chức năng cuối cùng mà bạn đã triển khai ở trên có lẽ là một hàm ít hiệu quả nhất vì các chuyển đổi dữ liệu và các hoạt động chuỗi, thường chậm hơn so với thao tác số trực tiếp. Nhưng trong thực tế, tất cả các triển khai làm bằng tay của bạn có giá trị tuyệt đối nhạt so với hàm

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 mà Lừa tích hợp vào ngôn ngữ. Điều đó bởi vì
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 được biên dịch cho mã máy nhanh, trong khi mã python thuần túy của bạn không phải là.

Bạn nên luôn luôn thích

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 hơn các chức năng tùy chỉnh của bạn. Nó chạy nhanh hơn nhiều, một lợi thế thực sự có thể thêm vào khi bạn có nhiều dữ liệu để xử lý. Ngoài ra, nó còn linh hoạt hơn nhiều, khi bạn đang tìm hiểu.

Số nguyên và số điểm nổi

Hàm

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 là một trong những hàm tích hợp là một phần của ngôn ngữ Python. Điều đó có nghĩa là bạn có thể bắt đầu sử dụng nó ngay lập tức mà không cần nhập:

>>>

>>> abs(-12)
12

>>> abs(-12.0)
12.0

Bạn luôn kết thúc với một số điểm nổi, ngay cả khi bạn bắt đầu với một số nguyên. Vì vậy, nếu bạn muốn bảo tồn kiểu dữ liệu gốc của một số, thì bạn có thể thích triển khai dựa trên piecewise thay thế.

Miễn là bạn ở trong các số nguyên và số điểm nổi, bạn cũng có thể viết một triển khai hơi ngớ ngẩn của hàm giá trị tuyệt đối bằng cách tận dụng biểu diễn văn bản của các số trong Python:

Bạn chuyển đổi đối số chức năng,

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
5, thành chuỗi Python bằng cách sử dụng hàm
def absolute_value(x):
    return (x**2) ** 0.5
0 tích hợp. Điều này cho phép bạn thay thế dấu hiệu trừ hàng đầu, nếu có, với một chuỗi trống. Sau đó, bạn chuyển đổi kết quả thành số điểm nổi với
def absolute_value(x):
    return (x**2) ** 0.5
1.real part and the imaginary part. One way to define a complex number in Python is by calling the built-in
>>> def absolute_value(x):
...     return (x**2) ** 0.5

>>> absolute_value(-12)
12.0

>>> type(12.0)
<class 'float'>
3 function:

Thực hiện chức năng giá trị tuyệt đối từ đầu trong Python là một bài tập học tập đáng giá. Tuy nhiên, trong các ứng dụng thực tế, bạn nên tận dụng chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 tích hợp đi kèm với Python. Bạn sẽ tìm hiểu lý do tại sao trong phần tiếp theo.

>>>

>>> z.real
3.0

>>> z.imag
2.0

Cả hai đều chỉ đọc và luôn được biểu thị dưới dạng giá trị dấu phẩy động. Ngoài ra, giá trị tuyệt đối của một số phức được trả về bởi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 xảy ra là một số điểm nổi:

>>>

>>> abs(z)
3.605551275463989

Điều này có thể làm bạn ngạc nhiên cho đến khi bạn phát hiện ra rằng các số phức tạp có một biểu diễn trực quan giống như các vectơ hai chiều được cố định tại hệ thống tọa độ của hệ thống gốc:

Hướng dẫn get absolute value python - nhận giá trị tuyệt đối python

Bạn đã biết công thức để tính độ dài của một vectơ như vậy, trong trường hợp này đồng ý với số được trả về bởi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2. Lưu ý rằng giá trị tuyệt đối của một số phức thường được gọi là cường độ, mô đun hoặc bán kính của một số phức.magnitude, modulus, or radius of a complex number.

Mặc dù số nguyên, số điểm nổi và các số phức là các loại số duy nhất được Python hỗ trợ, bạn sẽ tìm thấy hai loại số bổ sung trong thư viện tiêu chuẩn của nó. Họ cũng vậy, có thể tương tác với hàm

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2.

Phân số và số thập phân

Hàm

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trong Python chấp nhận tất cả các loại dữ liệu số có sẵn, bao gồm các phân số và số thập phân ít được biết đến. Chẳng hạn, bạn có thể nhận được giá trị tuyệt đối của một phần ba hoặc trừ ba phần tư được xác định là
def absolute_value(x):
    return float(str(x).replace("-", ""))
0 trường hợp:

>>>

>>> from fractions import Fraction

>>> abs(Fraction("1/3"))
Fraction(1, 3)

>>> abs(Fraction("-3/4"))
Fraction(3, 4)

Trong cả hai trường hợp, bạn sẽ lấy lại một đối tượng

def absolute_value(x):
    return float(str(x).replace("-", ""))
0 khác, nhưng nó không dấu. Điều đó có thể thuận tiện nếu bạn có kế hoạch tiếp tục tính toán trên các phân số, cung cấp độ chính xác cao hơn so với số điểm nổi.

Nếu bạn làm việc trong tài chính, thì bạn có thể muốn sử dụng các đối tượng

def absolute_value(x):
    return float(str(x).replace("-", ""))
2 để giúp giảm thiểu lỗi biểu diễn điểm nổi. May mắn thay, bạn có thể lấy giá trị tuyệt đối của các đối tượng này:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
0

Một lần nữa, chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trả về cùng loại dữ liệu với mô hình mà bạn cung cấp, nhưng nó mang lại cho bạn một giá trị tích cực phù hợp.

Wow,

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 có thể đối phó với nhiều loại dữ liệu số ấn tượng! Nhưng hóa ra
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 thậm chí còn thông minh hơn thế. Bạn thậm chí có thể gọi nó trên một số đối tượng được cung cấp bởi các thư viện của bên thứ ba, vì bạn sẽ thử trong phần tiếp theo.

Gọi from math import sqrt def absolute_value(x): return sqrt(pow(x, 2)) 2 trên các đối tượng Python khác

Giả sử bạn muốn tính toán các giá trị tuyệt đối của số đọc nhiệt độ trung bình hàng ngày trong một khoảng thời gian. Thật không may, ngay khi bạn thử gọi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên danh sách Python với những con số đó, bạn sẽ gặp lỗi:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
1

Điều đó vì

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 không biết cách xử lý một danh sách các số. Để làm việc xung quanh điều này, bạn có thể sử dụng danh sách hiểu hoặc gọi chức năng Python từ
def absolute_value(x):
    return float(str(x).replace("-", ""))
9, như vậy:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
2

Cả hai triển khai đều thực hiện công việc nhưng yêu cầu một bước bổ sung, có thể không phải lúc nào cũng mong muốn. Nếu bạn muốn cắt thêm bước đó, thì bạn có thể xem xét các thư viện bên ngoài thay đổi hành vi của

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 để thuận tiện cho bạn. Đó là những gì bạn sẽ khám phá dưới đây.

Numpy Arrays và Pandas Series

Một trong những thư viện phổ biến nhất để mở rộng Python với các mảng và ma trận hiệu suất cao là numpy. Cấu trúc dữ liệu mảng chiều của nó,

>>> abs(-12)
12

>>> abs(-12.0)
12.0
1, là nền tảng của điện toán số trong Python, vì vậy nhiều thư viện khác sử dụng nó làm nền tảng.numerical computing in Python, so many other libraries use it as a foundation.

Khi bạn chuyển đổi danh sách Python thông thường thành một mảng Numpy với

>>> abs(-12)
12

>>> abs(-12.0)
12.0
2, bạn sẽ có thể gọi một số chức năng tích hợp, bao gồm
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2, về kết quả: kết quả

>>>

def absolute_value(x):
    return x if x >= 0 else -x
3

Để đáp ứng với việc gọi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên một mảng numpy, bạn sẽ nhận được một mảng khác với các giá trị tuyệt đối của các phần tử ban đầu. Nó như thể bạn đã lặp lại danh sách các bài đọc nhiệt độ và áp dụng hàm
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên từng phần tử, giống như bạn đã làm với một danh sách hiểu trước đây.

Bạn có thể chuyển đổi một mảng numpy trở lại danh sách Python nếu bạn thấy điều đó phù hợp hơn:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
4

Tuy nhiên, lưu ý rằng các mảng numpy chia sẻ hầu hết giao diện danh sách Python. Ví dụ, họ hỗ trợ lập chỉ mục và cắt, và các phương pháp của chúng tương tự như danh sách đơn giản, vì vậy hầu hết mọi người thường chỉ sử dụng các mảng numpy mà không bao giờ nhìn lại danh sách.

Pandas là một thư viện bên thứ ba khác được sử dụng rộng rãi trong phân tích dữ liệu nhờ các đối tượng

>>> abs(-12)
12

>>> abs(-12.0)
12.0
6 và
>>> abs(-12)
12

>>> abs(-12.0)
12.0
7 của nó. Một loạt là một chuỗi các quan sát hoặc một cột, trong khi một khung dữ liệu giống như một bảng hoặc một bộ sưu tập các cột. Bạn có thể gọi
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên cả hai.data analysis thanks to its
>>> abs(-12)
12

>>> abs(-12.0)
12.0
6 and
>>> abs(-12)
12

>>> abs(-12.0)
12.0
7 objects. A series is a sequence of observations or a column, whereas a DataFrame is like a table or a collection of columns. You can call
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 on both of them.

Giả sử bạn có một từ điển Python ánh xạ một tên thành phố đến nhiệt độ trung bình thấp nhất được quan sát hàng tháng trong suốt một năm:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
5

Mỗi thành phố có mười hai lần đọc nhiệt độ, kéo dài từ tháng 1 đến tháng 12. Bây giờ, bạn có thể biến từ điển đó thành một đối tượng gấu trúc

>>> abs(-12)
12

>>> abs(-12.0)
12.0
7 để bạn có thể vẽ một số hiểu biết thú vị trong tương lai:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
6

Thay vì sử dụng chỉ mục dựa trên 0 mặc định, DataFrame của bạn được lập chỉ mục bằng tên tháng viết tắt, mà bạn có được với sự trợ giúp của mô-đun

>>> z.real
3.0

>>> z.imag
2.0
0. Mỗi cột trong DataFrame có một chuỗi nhiệt độ từ từ điển gốc, được biểu thị dưới dạng đối tượng
>>> abs(-12)
12

>>> abs(-12.0)
12.0
6:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
7

Bằng cách sử dụng cú pháp khung vuông (

>>> z.real
3.0

>>> z.imag
2.0
2) và tên thành phố như Rovaniemi, bạn có thể trích xuất một đối tượng
>>> abs(-12)
12

>>> abs(-12.0)
12.0
6 từ DataFrame và thu hẹp lượng thông tin được hiển thị.

Pandas, giống như Numpy, cho phép bạn gọi nhiều chức năng tích hợp của Python, trên các đối tượng của nó, bao gồm các đối tượng

>>> abs(-12)
12

>>> abs(-12.0)
12.0
7 và
>>> abs(-12)
12

>>> abs(-12.0)
12.0
6 của nó. Cụ thể, bạn có thể gọi
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 để tính toán nhiều hơn một giá trị tuyệt đối trong một lần:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
8

Gọi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên toàn bộ DataFrame áp dụng hàm cho từng phần tử trong mỗi cột. Bạn cũng có thể gọi
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên cột riêng lẻ.

Làm thế nào mà Numpy và Pandas thay đổi hành vi của chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 tích hợp của Python mà không sửa đổi mã cơ bản của nó? Vâng, điều đó là có thể bởi vì chức năng được thiết kế với các phần mở rộng như vậy trong tâm trí. Nếu bạn đang tìm kiếm một cách sử dụng nâng cao của
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2, thì hãy đọc tiếp để tạo kiểu dữ liệu của riêng bạn mà sẽ chơi độc đáo với chức năng đó.

Kiểu dữ liệu rất riêng của bạn

Tùy thuộc vào kiểu dữ liệu, Python sẽ xử lý việc tính toán các giá trị tuyệt đối khác nhau.

Khi bạn gọi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên một số nguyên, nó sẽ sử dụng đoạn mã tùy chỉnh giống như hàm piecewise của bạn. Tuy nhiên, chức năng đó sẽ được thực hiện trong ngôn ngữ lập trình C cho hiệu quả. Nếu bạn vượt qua một số điểm nổi, thì Python sẽ ủy thác cuộc gọi đó cho chức năng CTHER
>>> abs(z)
3.605551275463989
2. Trong trường hợp của một số phức, nó sẽ gọi hàm
>>> abs(z)
3.605551275463989
3 thay thế.

Điều gì về các đối tượng container như DataFrames, Sê -ri và Mảng?

Có thể hiểu được, khi bạn xác định một loại dữ liệu mới trong Python, nó đã giành được công việc với chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 vì hành vi mặc định của nó không rõ. Tuy nhiên, bạn có thể tùy ý tùy chỉnh hành vi của
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 so với các trường hợp của lớp bằng cách thực hiện phương thức
>>> abs(z)
3.605551275463989
6 đặc biệt bằng cách sử dụng Python thuần túy. Có một tập hợp hữu hạn các phương pháp đặc biệt được xác định trước trong Python cho phép bạn ghi đè lên cách các chức năng và toán tử nhất định nên hoạt động.

Hãy xem xét lớp sau đại diện cho một vectơ chiều miễn phí trong không gian Euclide:

>>>

def absolute_value(x):
    return x if x >= 0 else -x
9

Lớp này chấp nhận một hoặc nhiều giá trị tọa độ, mô tả sự dịch chuyển trong mỗi chiều từ nguồn gốc của hệ tọa độ. Phương pháp

>>> abs(z)
3.605551275463989
6 đặc biệt của bạn tính toán khoảng cách từ nguồn gốc, theo định nghĩa định mức Euclide mà bạn đã học được khi bắt đầu hướng dẫn này.Euclidean norm definition that you learned at the beginning of this tutorial.

Để kiểm tra lớp mới của bạn, bạn có thể tạo một vectơ vận tốc ba chiều của một bông tuyết rơi, ví dụ, có thể trông như thế này:velocity vector of a falling snowflake, for example, which might look like this:

>>>

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
0

Lưu ý cách gọi

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên phiên bản lớp
>>> abs(z)
3.605551275463989
9 của bạn trả về giá trị tuyệt đối chính xác, bằng khoảng 1,78. Các đơn vị tốc độ sẽ được biểu thị bằng mét mỗi giây miễn là sự dịch chuyển của Bông tuyết được đo bằng mét ở hai thời điểm riêng biệt cách nhau một giây. Nói cách khác, sẽ mất một giây để bông tuyết đi từ điểm A đến điểm B.

Sử dụng công thức được đề cập buộc bạn phải xác định điểm gốc. Tuy nhiên, vì lớp

>>> abs(z)
3.605551275463989
9 của bạn đại diện cho một vectơ miễn phí chứ không phải là một vectơ bị ràng buộc, bạn có thể đơn giản hóa mã của mình bằng cách tính toán hypotenuse đa chiều bằng cách sử dụng chức năng Python tựa ____ ____991:

>>>

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
1

Bạn nhận được kết quả tương tự với ít dòng mã hơn. Lưu ý rằng

>>> abs(z)
3.605551275463989
3 là một hàm thay đổi chấp nhận một số lượng đối số thay đổi, vì vậy bạn phải sử dụng toán tử Star (
>>> from fractions import Fraction

>>> abs(Fraction("1/3"))
Fraction(1, 3)

>>> abs(Fraction("-3/4"))
Fraction(3, 4)
3) để giải nén bộ tọa độ của bạn vào các đối số đó.

Đáng kinh ngạc! Bây giờ bạn có thể thực hiện thư viện của riêng mình và chức năng

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 tích hợp của Python sẽ biết cách làm việc với nó. Bạn sẽ nhận được chức năng tương tự như làm việc với Numpy hoặc Pandas!

Sự kết luận

Việc thực hiện các công thức cho một giá trị tuyệt đối trong Python là một làn gió. Tuy nhiên, Python đã đi kèm với hàm

from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 linh hoạt, cho phép bạn tính toán giá trị tuyệt đối của các loại số khác nhau, bao gồm số nguyên, số điểm nổi, số phức, v.v. Bạn cũng có thể sử dụng
from math import sqrt

def absolute_value(x):
    return sqrt(pow(x, 2))
2 trên các trường hợp của các lớp tùy chỉnh và các đối tượng thư viện của bên thứ ba.

Trong hướng dẫn này, bạn đã học được cách:

  • Thực hiện hàm giá trị tuyệt đối từ đầuabsolute value function from scratch
  • Sử dụng chức năng
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 tích hợp trong Pythonbuilt-in
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 function
    in Python
  • Tính toán các giá trị tuyệt đối của các sốnumbers
  • Gọi
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 trên các mảng numpy và sê -ri gấu trúcNumPy arrays and pandas series
  • Tùy chỉnh hành vi của
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 trên các đối tượng
    the behavior of
    from math import sqrt
    
    def absolute_value(x):
        return sqrt(pow(x, 2))
    
    2 on objects

Với kiến ​​thức này, bạn đã được trang bị một công cụ hiệu quả để tính toán các giá trị tuyệt đối trong Python.