我有一个带有正值和负值的 Numpy 数组。我需要对正数或零(funcPos)应用一个函数,对负数(funcNeg)应用一个不同的函数,将结果作为另一个数组。
我知道有numpy.where函数,所以我可以这样做:
y = np.where(x >= 0, funcPos(x), funcNeg(x))
但是,这会将 funcPos 和 funcNeg 应用于输入数组的所有元素,从而在过程中引发许多错误,因为这些函数并非设计用于处理符号错误的数字。
您对如何快速执行此操作(不使用循环)有什么建议吗?
非常感谢,
最佳答案
我建议如下:
y = np.zeros(x.shape)
y[x >= 0.] = funcPos(x[x >= 0.])
y[x < 0.] = funcNeg(x[x < 0.])
关于arrays - 在数组的不同部分执行不同的函数。 python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237196/