/ / Zmiana liczby w macierzy - python, python-3.x, numpy, matrix

Zmiana liczby w macierzy - python, python-3.x, numpy, matrix

Losowo generuję macierz. Załóżmy dla uproszczenia, że ​​ma on następującą postać np.shape(A) = (2,4):

import numpy as np
A:

matrix([[ 1,  2,  3,  4],
[ 3,  4, 10,  8]])

Następnie oceniam następujące wyrażenie:

import numpy as np
K = 3
I = 4
C0 = np.sum(np.maximum(A[-1] - K, 0)) / I

Pytanie brzmi, jak wprowadzić następujące ograniczenie: jeśli dowolna liczba kolumn w macierzy A jest mniejsza lub równa (<=) K (3), a następnie zmień ostatnią liczbę tej kolumny na zero? Zasadniczo moja macierz powinna się przekształcić w to:

A:

matrix([[ 1,  2,  3,  4],
[ 0,  0, 0,  8]])

Odpowiedzi:

0 dla odpowiedzi № 1

To jest jeden sposób.

A[-1][np.any(A <= 3, axis=0)] = 0

# matrix([[1, 2, 3, 4],
#         [0, 0, 0, 8]])

A[-1][np.any((A > 2) & (A <= 3), axis=0)] = 0

# matrix([[1, 2, 3, 4],
#         [0, 4, 0, 8]])