NumPy ufuncs
ufunc là gì?
ufuncs là viết tắt của "Hàm phổ quát" và chúng là các hàm NumPy hoạt động trên đối tượng ndarray
.
Tại sao nên sử dụng ufuncs?
ufuncs được sử dụng để triển khai vector hóa trong NumPy, nhanh hơn nhiều so với việc lặp lại các phần tử.
Họ cũng cung cấp các phương thức 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ử.
mảng đầu out
nơi giá trị trả về sẽ được sao chép.
Vector hóa là gì?
Việc chuyển đổi các câu lệnh lặp thành một phép toán dựa trên vectơ được gọi là vector 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 để làm điều đó là lặp lại cả hai danh sách rồi tính tổng từng phần tử.
Ví dụ
Nếu không có ufunc, chúng ta có thể sử dụng phương thức zip()
tích hợp 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)
Hãy tự mình thử » NumPy có một ufunc cho việc này, được gọi là add(x, y)
sẽ tạo ra kết quả tương tự.
Ví dụ
Với ufunc, chúng ta có thể sử dụng hàm add()
:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)
Hãy tự mình thử »