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)