143 votes

Numpy comment itérer sur les colonnes du tableau ?

Supposons que j'aie et m x n tableau. Je veux passer chaque colonne de ce tableau à une fonction pour effectuer une opération sur la colonne entière. Comment puis-je itérer sur les colonnes du tableau ?

Par exemple, j'ai un tableau 4 x 3 comme

1  99 2
2  14 5
3  12 7
4  43 1

for column in array:
  some_function(column)

où colonne serait "1,2,3,4" dans la première itération, "99,14,12,43" dans la deuxième, et "2,5,7,1" dans la troisième.

269voto

tillsten Points 1861

Il suffit d'itérer sur la transposition de votre tableau :

for column in array.T:
   some_function(column)

23voto

Abhijit Points 24122

Cela devrait vous donner un début

>>> for col in range(arr.shape[1]):
    some_function(arr[:,col])


[1 2 3 4]
[99 14 12 43]
[2 5 7 1]

7voto

Adi Points 128

Vous pouvez également utiliser unzip pour itérer à travers les colonnes

for col in zip(*array):
   some_function(col)

6voto

stevej Points 481

Pour un tableau tridimensionnel, vous pouvez essayer :

for c in array.transpose(1, 0, 2):
    do_stuff(c)

Consultez les documents sur le fonctionnement array.transpose. Fondamentalement, vous spécifiez quelle dimension à décaler. Dans ce cas, nous déplaçons la deuxième dimension (par exemple les colonnes) vers la première dimension.

5voto

user3061373 Points 81
for c in np.hsplit(array, array.shape[1]):
    some_fun(c)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X