只有在两个数组都不为零的情况下,将一个numpy数组除以另一个(具有相同形状,元素方式)的最简单,最Pythonic方法是什么?
如果除数或被除数为零,则输出数组中的对应元素应为零。 (当除数为零时,这是默认输出,但当被除数为零时,np.nan是默认输出。)
答案 0 :(得分:4)
这仍然试图除以0,但它给出了正确的结果:
np.where(b==0, 0, a/b)
为避免进行除零,您可以执行以下操作:
m = b!=0
c = np.zeros_like(a)
np.place(c, m, a[m]/b[m])
答案 1 :(得分:3)
我会分两行:
z = x/y
z[y == 0] = 0
正如你所说,如果只有x
中的元素为0,z
在该位置已经为0。所以让NumPy处理它,然后使用NumPy的boolean indexing修复y
为0的地方。