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中文网其他相关文章!