如何将numpy.nan替换为-1(在一行代码中)?

时间:2019-01-20 14:13:39

标签: python numpy

我有z = np.array([4.4, 3, 0, np.nan, -1, 6]),但是找不到任何快速友好的解决方案来轻松更换。我不敢相信有时候这种语言对用户来说不友好。

我尝试过:

np.where(z == np.nan, -1, z)

什么都没发生

np.nan_to_num(z, -1)

更改为零

z = [-1 if np.nan(x) else x for x in z]

TypeError:“浮动”对象不可调用

为什么这么麻烦的事情不能那么简单?我只能使用numpy。

1 个答案:

答案 0 :(得分:4)

使用np.isnan(x)。您可以这样替换:

z = np.array([4.4, 3, 0, np.nan, -1, 6])
z[np.isnan(z)] = -1
print(z)

# [ 4.4  3.   0.  -1.  -1.   6. ]