我有一个Numpy数组,有正值和负值。我需要将函数应用于正数或零(funcPos),将不同的函数应用于负数(funcNeg),将结果作为另一个数组。
我知道有numpy.where功能,所以我可以这样做:
y = np.where(x >= 0, funcPos(x), funcNeg(x))
然而,这将funcPos和funcNeg应用于输入数组的所有元素,在过程中抛出许多错误,因为这些函数不是为处理错误符号的数字而设计的。
对于如何快速完成此操作(不使用循环),您有什么建议吗?
非常感谢,
答案 0 :(得分:5)
我建议如下:
y = np.zeros(x.shape)
y[x >= 0.] = funcPos(x[x >= 0.])
y[x < 0.] = funcNeg(x[x < 0.])