25
consideri un array nella forma seguente (solo un esempio):Reshape una matrice in NumPy
[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]
[12 13]
[14 15]
[16 17]]
È forma è [9,2]. Ora voglio trasformare la matrice in modo che ogni colonna diventa una forma [3,3], in questo modo:
[[ 0 6 12]
[ 2 8 14]
[ 4 10 16]]
[[ 1 7 13]
[ 3 9 15]
[ 5 11 17]]
La soluzione più ovvia (e sicuramente "non divinatorio") è per inizializzare una matrice di zeri con la dimensione corretta ed eseguire due for-loops in cui sarà riempito con i dati. Sono interessato a una soluzione che è la lingua-conforme ...
Si noti che 'B' ora non è contiguo, il che significa che non può essere rimodellato in atto:' b.reshape (9, 2) ' restituisce una copia, non una vista degli stessi dati, e 'b.shape = (9, 2)' aumenterà ed errore. – Jaime
Commento molto molto importante di @Jaime, poiché il punto di forma è consentire il ridimensionamento ottimistico senza un clone. Grande affare con enormi set di dati – deepelement