在NumPy数组的每个单元上有效地计算函数

给定一个NumPy数组a,将相同的函数f应用于每个单元的最快/最有效的方法是什么

  1. 假设我们将A(i,j)赋值给f(A(i,j))

  2. 函数f没有二进制输出,因此掩码(ing)操作没有帮助

“明显的”双环迭代(通过每个单元)是最佳解决方案吗

您可以将函数矢量化,然后在每次需要时将其直接应用于Numpy数组:

将numpy导入为np
def f(x):
如果x>则返回x*x+3*x-2;0其他x*5+8
f=np.vectorize(f)#如果要保留原始f,请使用其他名称
结果_数组=f(A)#如果A是你的Numpy数组

矢量化时,最好直接指定显式输出类型:

f=np.vectorize(f,otypes=[np.float])

发表评论