294 votes

Comment extraire une colonne d'un tableau multidimensionnel ?

Quelqu'un sait-il comment extraire une colonne d'un tableau multidimensionnel en Python ?

7voto

Sergey Ivanov Points 409

Vous pouvez également l'utiliser :

values = np.array([[1,2,3],[4,5,6]])
values[...,0] # first column
#[1,4]

Note : Cela ne fonctionne pas pour les tableaux intégrés et non alignés (par exemple, np.array([[1,2,3],[4,5,6,7]]) ).

6voto

Je pense que vous voulez extraire une colonne d'un tableau tel que le tableau ci-dessous

import numpy as np
A = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

Maintenant si vous voulez obtenir la troisième colonne dans le format

D=array[[3],
[7],
[11]]

Alors vous devez d'abord faire du tableau une matrice

B=np.asmatrix(A)
C=B[:,2]
D=asarray(C)

Et maintenant, vous pouvez faire des calculs par élément comme vous le feriez dans Excel.

5voto

Shashwat Points 691

Une autre façon d'utiliser les matrices

>>> from numpy import matrix
>>> a = [ [1,2,3],[4,5,6],[7,8,9] ]
>>> matrix(a).transpose()[1].getA()[0]
array([2, 5, 8])
>>> matrix(a).transpose()[0].getA()[0]
array([1, 4, 7])

5voto

Serge_k Points 167

Disons que nous avons n X m matrice( n rangs et m colonnes) soit 5 lignes et 4 colonnes

matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]

Pour extraire les colonnes en python, nous pouvons utiliser la compréhension de liste comme ceci

[ [row[i] for row in matrix] for in range(4) ]

Vous pouvez remplacer 4 par n'importe quel nombre de colonnes de votre matrice. Le résultat est

[ [1,5,9,13,17],[2,10,14,18],[3,7,11,15,19],[4,8,12,16,20] ]

4voto

David Tatis Points 66

Utilisez simplement la fonction transpose(), et vous pourrez obtenir les colonnes aussi facilement que les lignes.

matrix=np.array(originalMatrix).transpose()
print matrix[NumberOfColumns]

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