假设我有两个数组
x = [1,2,3]
y = [0,1,0]
我需要使用numpy对数组进行逐元素划分。但是我的问题在于实现“安全划分”时遇到了困难。 当执行以下操作时:
np.divide(x,y).tolist()
我得到了输出:
[0.0, 2.0, 0.0]
我的问题是,当除以0时,我需要返回不为0的元素,使得理想输出如下:
[1.0, 2.0, 3.0]
有没有使用numpy的解决方法? 手动定义一个函数来完成这个任务,有没有更优化的方法来完成这个任务,而不需要创建一个自定义的除法函数(如下所示)并在每对元素上使用它?
def mydiv(x, y):
if y == 0:
return x
else:
return x / y
注意:我担心优化的原因是这将在云中运行,因此资源受限,在具有300+元素数组时,这样做似乎并不最优。
np.ndarray
对象,然后再转回列表的成本是否值得对300左右的元素列表进行加速...事实上,我认为这样做会显著地变慢。 - juanpa.arrivillaga