NumPy ufuncs
什麼是 ufuncs?
ufuncs 是“通用函式”(Universal Functions) 的縮寫,它們是 NumPy 操作 ndarray
物件的函式。
為什麼使用 ufuncs?
ufuncs 用於在 NumPy 中實現向量化,這比迭代元素快得多。
它們還提供了廣播以及 reduce、accumulate 等附加方法,這些方法對於計算非常有幫助。
ufuncs 還可以接受其他引數,例如:
where
: 定義操作應在何處執行的布林陣列或條件。
dtype
: 定義元素的返回型別。
out
: 將返回值複製到的輸出陣列。
什麼是向量化?
將迭代語句轉換為基於向量的操作稱為向量化。
它速度更快,因為現代 CPU 針對此類操作進行了最佳化。
將兩個列表的元素相加
列表 1: [1, 2, 3, 4]
列表 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)
自己動手試一試 »