Numpy 數組的向量化函數
要在numpy 數組上有效地映射函數,您可以利用向量化的強大功能,它允許您對數組按元素執行操作。這比使用基於循環的方法(如列表推導式)要快得多。
NumPy 本機函數
如果您要對應的函數已經向量化為NumPy 函數,例如np.square() 用於將元素平方,強烈建議使用它。它將比其他方法快得多。
使用 NumPy 的向量化進行矢量化
NumPy 提供了向量化函數的向量化函數。它包裝您的函數以在數組上啟用按元素操作:
import numpy as np def f(x): return x ** 2 vf = np.vectorize(f) x = np.array([1, 2, 3, 4, 5]) squares = vf(x)
另一種選擇是在不初始化函數包裝器的情況下使用矢量化:
squares = np.vectorize(f)(x)
其他向量化方法
其他向量化方法include:
效能注意事項
雖然所有這些方法都可以向量化函數,但它們的效能可能會有所不同。基準測試表明,如果可用,使用 NumPy 的本機函數是最快的。對於其他情況,向量化和 fromiter 通常比 np.array(list(map(f, x))) 表現更好。
以上是如何有效率地將函數應用於 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!