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

用相同大小的数组替换nan子数组的python方法,python,numpy,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方法是什么,这样我就得到了reult: [1, 2, 3, 4, 12, 5, 1

假设我给出了一个
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方法是什么,这样我就得到了reult:

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

使用
np.isnan
a
执行布尔索引,并替换为
b
,如下所示:

a[np.isnan(a)] = b


我将添加这一点作为参考,以强调
np.isnan
可能是这样做的,因为
np.nan==np.nan
总是
False
print(a)
# array([ 1.,  2.,  3.,  4., 12.,  5., 13.,  6., 14.])