用Pythonic方法用相同大小的数组替换nan子数组

时间:2019-10-18 08:56:12

标签: python numpy

假设我给了numpy这样的数组:

a = np.array([1, 2, 3, 4, np.nan, 5, np.nan, 6, np.nan])
# [1, 2, 3, 4, nan, 5, nan, 6, nan]

我知道数组中nan个值的数量,并具有要替换的相应数组,例如:

b = np.array([12, 13, 14])
# [12, 13, 14]

将数组b替换为所有nan值的Python方法是什么,这样我得到了结果:

[1, 2, 3, 4, 12, 5, 13, 6, 14]

1 个答案:

答案 0 :(得分:6)

使用anp.isnan上执行布尔索引,并用b替换为:

a[np.isnan(a)] = b

print(a)
# array([ 1.,  2.,  3.,  4., 12.,  5., 13.,  6., 14.])