arrays - 在数组的不同部分执行不同的函数。 python 3

标签 arrays python-3.x numpy

我有一个带有正值和负值的 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/

相关文章:

python - 如何制作一个迭代 2D numpy 数组的生成器?

python - 创建高程/高度场 gdal numpy python

arrays - 弹出数组的键以计算总数

javascript - 函数返回值是否可以作为数组键?

python - 为什么我的代码会引发 AttributeError 而不是 ValueError

python-3.x - 如何在matplotlib中的直方图上绘制cdf

python - 为什么交换奇数个变量列表时变量会消失?

python - 切片具有中心元素索引的子矩阵

javascript - 将对象数组转换为已排序的数组数组

java - 如何按两个字段对数组列表进行排序