使用矢量中的值转换2D numpy数组中的NaN值



我有一个2D numpy数组,希望用1D数组中的相应值替换每行中的每个NaN。例如,这个矩阵:

[[1.  2. NaN]
 [4.  5.  6.]
 [NaN NaN 9.]]

使用矢量[3. 7. 8.]将被转换为:

[[1. 2. 8.]
 [4. 5. 6.]
 [3. 7. 9.]]

如何在不迭代索引的情况下做到这一点?

使用numpy.where和广播:

>>> a = np.array([[1.,  2., np.nan],
                  [4.,  5.,  6.],
                  [np.nan, np.nan, 9.]])
>>> v = np.array([3, 7, 8])
>>> np.where(np.isnan(a), v, a)
array([[ 1.,  2.,  8.],
       [ 4.,  5.,  6.],
       [ 3.,  7.,  9.]])

numpy.isnan()为您提供了一个布尔值数组,NaN的值为True,否则为False

相关内容

  • 没有找到相关文章

最新更新