Ho una matrice numpy 2D e ho un array di righe e colonne che dovrebbe essere impostato su un valore particolare. Consente di prendere in considerazione il seguente esempiocome modificare un array numpy 2D in posizioni specifiche senza un loop?
a = array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
voglio modificare le voci a filari [0,2] e colonne [1,2]. Ciò dovrebbe comportare la seguente matrice
a = array([[1, 2, 0],
[4, 5, 0],
[7, 8, 9]])
ho seguito e portato a modificare ogni sequenza di colonna in ogni riga
rows = [0,1]
cols = [2,2]
b=a[numpy.ix_(rows,columns)]
Essa ha portato alla seguente matrice modificando ogni colonna della matrice specificato
array([[1, 0, 0],
[4, 5, 6],
[7, 0, 0]])
Qualcuno potrebbe per favore fatemi sapere come farlo?
Grazie mille
EDIT: E 'da notare che le righe e le colonne coincidently successo a essere Sequentia. Il punto attuale è che questi potrebbero essere arbitrari e in qualsiasi ordine. se è rows = [a, b, c] e cols = [n x z] allora voglio modificare esattamente tre elementi nelle posizioni (a, n), (b, x), (c, z).
Hai perfettamente ragione. Grazie per aver indicato la documentazione. Era un bug nel programma. Lo sapevo ma non potevo lavorare. La tua risposta è molto esplicativa. – Shan
che cosa c'è nella sintassi [x] in corso? –
@johnktejik Questo è solo l'output di una cella di esecuzione di un notebook ipython/jupyter. Pensalo come un prompt numerato sulla linea. – JoshAdel