给定一个NumPy数组a,将相同的函数f应用于每个单元的最快/最有效的方法是什么
-
假设我们将A(i,j)赋值给f(A(i,j))
-
函数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])