So ersetzen Sie Werte aus einem Numpy-Array durch ein anderes Array durch Indizes

Oct 08 2020

Ich habe zwei Arrays und eine Liste mit Indizes

Array-Quelle (Array 01):

x = np.array([[1,2,3], [4,5,6], [7,8,9]])
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

Array mit neuen Werten (Array 02):

y = np.array([11, 22, 33])
array([11, 22, 33])

und eine Liste mit Indizes

a = [1,2,1]
[1, 2, 1]

Ich muss die Werte von Array 02 in Array 01 basierend auf Indizes ersetzen

Die erwartete Rendite:

array([[1, 11, 3],
       [4, 5, 22],
       [7, 33, 9]])

Wie geht das ohne Schleife?

Danke im Voraus.

Antworten

1 mathfux Oct 08 2020 at 05:26

Versuchen Sie die erweiterte Indizierung :

x[np.arange(len(x)), a] = y

Ich fand auch dieses Tutorial einfacher für mich als die offizielle Dokumentation.