import numpy as np
matrix = np.linspace(1,12,12)
np.random.shuffle(matrix)
matrix = matrix.reshape(3,4)
max_index = matrix.argsort(0)[-1, :]
one_hot = ~np.eye(max(matrix.shape))[max_index].T[:matrix.shape[0], :].astype(np.bool)
matrix[one_hot] = 0
import numpy as np
matrix = np.linspace(1,12,12)
np.random.shuffle(matrix)
matrix = matrix.reshape(3,4)
max_index = matrix.argsort(0)[-1, :]
one_hot = ~np.eye(max(matrix.shape))[max_index].T[:matrix.shape[0], :].astype(np.bool)
matrix[one_hot] = 0