在数组的不同部分执行不同的功能。 Python 3

时间:2017-07-21 12:03:44

标签: arrays python-3.x numpy

我有一个Numpy数组,有正值和负值。我需要将函数应用于正数或零(funcPos),将不同的函数应用于负数(funcNeg),将结果作为另一个数组。

我知道有numpy.where功能,所以我可以这样做:

y = np.where(x >= 0, funcPos(x), funcNeg(x))

然而,这将funcPos和funcNeg应用于输入数组的所有元素,在过程中抛出许多错误,因为这些函数不是为处理错误符号的数字而设计的。

对于如何快速完成此操作(不使用循环),您有什么建议吗?

非常感谢,

1 个答案:

答案 0 :(得分:5)

我建议如下:

y = np.zeros(x.shape) y[x >= 0.] = funcPos(x[x >= 0.]) y[x < 0.] = funcNeg(x[x < 0.])