Suponha que eu tenha um array mxn. Eu quero passar cada coluna desta matriz para uma função para realizar alguma operação em toda a coluna. Como faço para iterar nas colunas da matriz?
Por exemplo, eu tenho uma matriz 4 x 3 como
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
onde a coluna seria "1,2,3,4" na primeira iteração, "99,14,12,43" na segunda e "2,5,7,1" na terceira.
Respostas:
Apenas itere sobre a transposição de sua matriz:
fonte
array.T
não é caro, pois apenas muda os 'avanços' dearray
(veja esta resposta para uma discussão interessante)Isso deve te dar um começo
fonte
Para uma matriz tridimensional, você pode tentar:
Veja a documentação sobre como
array.transpose
funciona. Basicamente, você está especificando qual dimensão mudar. Neste caso, estamos mudando a segunda dimensão (por exemplo, colunas) para a primeira dimensão.fonte
fonte
Você também pode usar unzip para percorrer as colunas
fonte
Por exemplo, você deseja encontrar a média de cada coluna na matriz. Vamos criar a seguinte matriz
A função para média é
Para fazer o que é necessário e armazenar o resultado nos 'resultados' do vetor de cólon
Os resultados são: array ([4.33333333, 5., 5.66666667, 4.])
fonte
Alternativamente, você pode usar
enumerate
. Fornece o número da coluna e os valores da coluna também.fonte