Estrarre colonna della matrice in Python
Per leggere una colonna di un oggetto matriciale, precedentemente creato con l'istruzione array di numpy, si devono scorrere gli elementi nelle righe della matrice o trasporre la matrice.
Esempio
m=array([[1,2,3],[4,5,6],[7,8,9]])
Questo oggetto equivale a una matrice 3x3 ( 3 righe x 3 colonne )
Proviamo a estrarre la prima o la seconda colonna della matrice con Python.
Il problema ha le seguenti soluzioni:
Soluzione 1
Si può trasporre la matrice
m.T
L'istruzione precedente crea un oggetto con le colonne organizzate in liste
E' la matrice trasposta di m con le righe al posto delle colonne.
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
Ora, per leggere la prima colonna, si può semplicemente estrarre la prima riga della matrice trasposta.
La prima colonna è la numero 0.
m.T[0]
Il comando restituisce gli elementi della prima colonna della matrice.
array([1, 4, 7])
E' la prima colonna della matrice m.
Soluzione 2
Per selezionare una colonna della matrice si possono selezionare gli elementi della i-esima colonna scorrendo le righe.
Questa istruzione scorre tutte le righe della matrice m e legge il secondo elemento di ciascuna tramite la funzione row[1].
[row[1] for row in m]
Il risultato in output è il seguente:
[2, 5, 8]
E' la seconda colonna della matrice iniziale.
Allo stesso modo si può leggere la terza colonna della matrice con row[2].
La prima colonna può essere letta con row[0].
Nota. Il programma deve leggere tutte le righe della matrice per estrarre una singola colonna.