NumPy阵列中如何对每个单元格函数的有效求值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

给出NumPy array A:

  1. 假设我们将分配给a(i,j)为F(A(I,j))
  2. 函数f,没有二进制输出,因此掩码(Ing)操作不会有帮助。

“明显的”双循环迭代(通过每个单元)是最优解吗?

提问于
用户回答回答于
用户回答回答于

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

import numpy as np

def f(x):
    return x * x + 3 * x - 2 if x > 0 else x * 5 + 8

f = np.vectorize(f)  # or use a different name if you want to keep the original f

result_array = f(A)  # if A is your Numpy array

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

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

扫码关注云+社区