NumPy ufuncs
Ufuncs là gì?
ufuncs là viết tắt của "Universal Functions" và chúng là các hàm NumPy hoạt động trên ndarray
đối tượng.
Tại sao sử dụng ufuncs?
ufuncs được sử dụng để triển khai vectơ hóa trong NumPy, cách này nhanh hơn so với việc lặp qua các phần tử.
Họ cũng cung cấp các phương pháp phát sóng và bổ sung như giảm, tích lũy, v.v. rất hữu ích cho việc tính toán.
ufuncs cũng có các đối số bổ sung, như:
where
mảng boolean hoặc điều kiện xác định nơi các hoạt động sẽ diễn ra.
dtype
xác định kiểu trả về của các phần tử.
out
mảng đầu ra nơi giá trị trả về sẽ được sao chép.
Vectorization là gì?
Chuyển đổi các câu lệnh lặp thành một hoạt động dựa trên vectơ được gọi là vectơ hóa.
Nó nhanh hơn vì các CPU hiện đại được tối ưu hóa cho các hoạt động như vậy.
Thêm các phần tử của hai danh sách
danh sách 1: [1, 2, 3, 4]
danh sách 2: [4, 5, 6, 7]
Một cách thực hiện là lặp lại cả hai danh sách và sau đó tính tổng từng phần tử.
Thí dụ
Nếu không có hàm ufunc, chúng ta có thể sử dụng zip()
phương thức tích hợp sẵn của Python:
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
z.append(i + j)
print(z)
NumPy có một chức năng cho điều này, được gọi là add(x, y)
sẽ tạo ra cùng một kết quả.
Thí dụ
Với ufunc, chúng ta có thể sử dụng add()
hàm:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)