给定矩阵
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.where
和numpy.nanmin
输出的整形:
output_matrix = np.where(np.isnan(matrix), np.nanmin(matrix, 1)[:,None], matrix)
输出:
array([[ 1., 2., 3.],
[ 1., 1., 3.],
[nan, nan, nan]])