屏蔽每列中的最小值
Masking minimum value in every column
我有以下矩阵:
matrix = np.arange(24).reshape(4,6)
我想屏蔽每列中的最小值。下面的解决方案在 axis=1
时屏蔽了每一行中的最小值,但是在 axis=0
时它只屏蔽了第一列中的最小值。
matrix_masked = np.ma.masked_where(matrix == np.resize(matrix.min(axis=0),[matrix.shape[0],1]),matrix)
还有什么我应该改变的吗?
总和不需要重新整形为列在轴 0 上找到正确的值。
所以尝试不调整大小:
import numpy as np
np.random.seed(5)
matrix = np.random.randint(0, 100, size=(4, 6))
matrix_masked = np.ma.masked_where(matrix == matrix.min(axis=0), matrix)
print("Matrix")
print(matrix)
print("Masked Matrix")
print(matrix_masked)
Matrix
[[99 78 61 16 73 8]
[62 27 30 80 7 76]
[15 53 80 27 44 77]
[75 65 47 30 84 86]]
Masked Matrix
[[99 78 61 -- 73 --]
[62 -- -- 80 -- 76]
[-- 53 80 27 44 77]
[75 65 47 30 84 86]]
或@Corralien's suggestion use MaskedArray:
matrix_masked = np.ma.MaskedArray(matrix, matrix == np.min(matrix, axis=0))
我有以下矩阵:
matrix = np.arange(24).reshape(4,6)
我想屏蔽每列中的最小值。下面的解决方案在 axis=1
时屏蔽了每一行中的最小值,但是在 axis=0
时它只屏蔽了第一列中的最小值。
matrix_masked = np.ma.masked_where(matrix == np.resize(matrix.min(axis=0),[matrix.shape[0],1]),matrix)
还有什么我应该改变的吗?
总和不需要重新整形为列在轴 0 上找到正确的值。
所以尝试不调整大小:
import numpy as np
np.random.seed(5)
matrix = np.random.randint(0, 100, size=(4, 6))
matrix_masked = np.ma.masked_where(matrix == matrix.min(axis=0), matrix)
print("Matrix")
print(matrix)
print("Masked Matrix")
print(matrix_masked)
Matrix
[[99 78 61 16 73 8]
[62 27 30 80 7 76]
[15 53 80 27 44 77]
[75 65 47 30 84 86]]
Masked Matrix
[[99 78 61 -- 73 --]
[62 -- -- 80 -- 76]
[-- 53 80 27 44 77]
[75 65 47 30 84 86]]
或@Corralien's suggestion use MaskedArray:
matrix_masked = np.ma.MaskedArray(matrix, matrix == np.min(matrix, axis=0))