NumPy ufuncs

什么是 ufuncs?

ufuncs 指的是“通用函數”(Universal Functions),它們是對 ndarray 對象進行操作的 NumPy 函數。

為什么要使用 ufuncs?

ufunc 用于在 NumPy 中實現矢量化,這比迭代元素要快得多。

它們還提供廣播和其他方法,例如減少、累加等,它們對計算非常有幫助。

ufuncs 還接受其他參數,比如:

where 布爾值數組或條件,用于定義應在何處進行操作。

dtype 定義元素的返回類型。

out 返回值應被復制到的輸出數組。

什么是向量化?

將迭代語句轉換為基于向量的操作稱為向量化。

由于現代 CPU 已針對此類操作進行了優化,因此速度更快。

對兩個列表的元素進行相加:

list 1: [1, 2, 3, 4]

list 2: [4, 5, 6, 7]

一種方法是遍歷兩個列表,然后對每個元素求和。

實例

如果沒有 ufunc,我們可以使用 Python 的內置 zip() 方法:

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 有一個 ufunc,名為 add(x, y),它會輸出相同的結果。

實例

通過 ufunc,我們可以使用 add() 函數:

import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)

運行實例