Angenommen, ich habe ein mxn-Array. Ich möchte jede Spalte dieses Arrays an eine Funktion übergeben, um eine Operation für die gesamte Spalte auszuführen. Wie iteriere ich über die Spalten des Arrays?
Zum Beispiel habe ich ein 4 x 3 Array wie
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
wobei die Spalte in der ersten Iteration "1,2,3,4", in der zweiten "99,14,12,43" und in der dritten "2,5,7,1" wäre.
Antworten:
Iterieren Sie einfach über die Transponierte Ihres Arrays:
quelle
array.T
ist es nicht teuer, da es nur die "Schritte" von ändertarray
(siehe diese Antwort für eine interessante Diskussion)Dies sollte Ihnen einen Anfang geben
quelle
Für ein dreidimensionales Array könnten Sie versuchen:
Informationen zur Funktionsweise finden Sie in den Dokumenten
array.transpose
. Grundsätzlich geben Sie an, welche Dimension verschoben werden soll. In diesem Fall verschieben wir die zweite Dimension (z. B. Spalten) in die erste Dimension.quelle
quelle
Sie können auch entpacken verwenden, um durch die Spalten zu iterieren
quelle
Sie möchten beispielsweise einen Mittelwert für jede Spalte in der Matrix ermitteln. Lassen Sie uns die folgende Matrix erstellen
Die Funktion für Mittelwert ist
Um das zu tun, was benötigt wird, speichern Sie das Ergebnis im Doppelpunktvektor "Ergebnisse".
Die Ergebnisse sind: Array ([4.33333333, 5., 5.66666667, 4.])
quelle
Alternativ können Sie verwenden
enumerate
. Es gibt Ihnen auch die Spaltennummer und die Spaltenwerte.quelle