Creazione di un array 2D comePerché non l'ordine indice di matrice 2D Python importa quando utilizzato con i due punti (:)
x = [range(i, i+10) for i in xrange(1,100,10)]
e indicizzazione utilizzando l'operatore due punti come questo
>>> x[2][:]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
opere come previsto. Si restituisce tutti fila 2.
Tuttavia, se voglio recuperare tutti colonna 2, avrei istintivamente fare
>>> x[:][2]
Ma questo torna anche
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Qual è il ragionamento che sta dietro Questo? Penserei intuitivamente che questo restituisca la colonna 2 di ogni riga.
(Inoltre, sono consapevole che posso usare NumPy fare x [:, 2] o potrei usare list comprehension per raggiungere questo obiettivo, che non è la mia domanda)
Stampa 'x' e capirai perché. – Maroun
'stampa (zip (* x) [2])' –