Załóżmy, że mam tablicę i mxn. Chcę przekazać każdą kolumnę tej tablicy do funkcji wykonującej jakąś operację na całej kolumnie. Jak iterować po kolumnach tablicy?
Na przykład mam tablicę 4 x 3, taką jak
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
gdzie kolumna to „1,2,3,4” w pierwszej iteracji, „99,14,12,43” w drugiej i „2,5,7,1” w trzeciej.
Odpowiedzi:
Po prostu wykonaj iterację po transpozycji swojej tablicy:
źródło
array.T
nie jest kosztowne, ponieważ zmienia tylko „kroki”array
(zobacz tę odpowiedź na ciekawą dyskusję)To powinno dać ci początek
źródło
Aby uzyskać trójwymiarową tablicę, możesz spróbować:
Zobacz dokumentację, aby dowiedzieć się, jak to
array.transpose
działa. Zasadniczo określasz, który wymiar ma zostać przesunięty. W tym przypadku przesuwamy drugi wymiar (np. Słupy) do pierwszego wymiaru.źródło
źródło
Możesz także użyć polecenia unzip, aby iterować po kolumnach
źródło
Na przykład chcesz znaleźć średnią z każdej kolumny w macierzy. Stwórzmy następującą macierz
Funkcja średniej to
Aby zrobić to, co jest potrzebne i zapisać wynik w „wynikach” wektora okrężnicy
Wyniki to: tablica ([4.33333333, 5., 5.66666667, 4.])
źródło
Alternatywnie możesz użyć
enumerate
. Podaje numer kolumny i jej wartości.źródło