【发布时间】:2016-07-08 23:40:16
【问题描述】:
我正在使用numpy.where,我想知道是否有一种简单的方法可以避免调用未使用的参数。示例:
import numpy as np
z = np.array([-2, -1, 0, 1, -2])
np.where(z!=0, 1/z, 1)
返回:
array([-0.5, -1. , 1. , 1. , -0.5])
但我得到一个除以零的警告,因为当 z 为 0 时,代码仍会评估 1/z,即使它不使用它。
【问题讨论】:
-
你为什么不使用 z = z[np.nonzero(z)] 然后除以 z,但这只是返回 1 所以我想我不知道为什么
-
1/z由解释器执行,作为调用where的一部分。这不受where的控制。但是你可以做out[ind]=1/z[ind]其中ind是ok 值的掩码。还有其他处理除以零的方法。 -
搜索 [numpy] 和 [除零] 标签
标签: python numpy divide-by-zero