Ho un array Python semplice, unidimensionale con numeri casuali. Quello che voglio fare è convertirlo in una matrice numpy di una forma specifica. Il mio tentativo in corso si presenta così:Converti matrice 1D in matrice numpy
randomWeights = []
for i in range(80):
randomWeights.append(random.uniform(-1, 1))
W = np.mat(randomWeights)
W.reshape(8,10)
Purtroppo crea sempre una matrice di forma:
[[random1, random2, random3, ...]]
Quindi solo il primo elemento di una dimensione viene utilizzata e il comando di rimodella non ha alcun effetto. C'è un modo per convertire l'array 1D in una matrice in modo che i primi elementi x siano la riga 1 della matrice, i successivi elementi x saranno la riga 2 e così via?
Fondamentalmente questo sarebbe il forma desiderata:
[[1, 2, 3, 4, 5, 6, 7, 8],
[9, 10, 11, ... , 16],
[..., 800]]
Suppongo di poter sempre costruire una nuova matrice nella forma desiderata manualmente analizzando attraverso l'array di input. Ma mi piacerebbe sapere se esiste una soluzione più semplice e più elegante con funzioni integrate che non vedo. Se devo costruire manualmente queste matrici, avrò un sacco di lavoro extra in altre aree del codice, dal momento che tutti i miei dati sorgente vengono forniti in semplici array 1D ma saranno calcolati come matrici.