Numpy:用矩阵中行的最小值填充包含 NaN 的矩阵



给定矩阵

matrix = np.array([[1,2,3],[1,np.nan,3],[np.nan,np.nan,np.nan]])

获取包含每行最小值的矢量

vector_of_min_row_values = np.nanmin(matrix, axis=1)

如何将每行中的NaN值替换为该行的最小值。这应该创建这样一个矩阵:

output_matrix = np.array([[1,2,3],[1,1,3],[np.nan,np.nan,np.nan]])

您可以使用numpy.wherenumpy.nanmin输出的整形:

output_matrix = np.where(np.isnan(matrix), np.nanmin(matrix, 1)[:,None], matrix)

输出:

array([[ 1.,  2.,  3.],
[ 1.,  1.,  3.],
[nan, nan, nan]])

最新更新