У меня есть массив, который выглядит следующим образом:
M=np.array([[1,2,3],[4,9,2],[3,5,6],[8,1,3]])
> M = [[1,2,3],
> [4,9,2],
> [3,5,6],
> [8,1,3]]
Для каждого столбца я хочу установить два наименьших значения на ноль.
Таким образом, я сортирую их по убыванию порядок (я знаю, что по возрастанию будет быстрее)
M1 = np.sort(M, axis=0)[::-1]
Тогда я хочу использовать что-то вроде
for column in range(M.shape[1]):
for row in range(M.shape[0]):
if M[row, column] < M1[1,column]:
M[row, column] = 0
и получить:
> M = [[0,0,0],
> [4,9,0],
> [0,5,6],
> [8,0,3]]
Как я могу сделать эта последняя часть более эффективна (для массива или DataFrame)?