Penso che il mio problema dovrebbe essere molto semplice, ma non riesco a trovare alcun aiuto su Internet. Sono molto nuovo a Python, quindi è possibile che mi manchi qualcosa di molto ovvio.Python: ridimensionare una matrice esistente e riempire di zeri
Ho un array, S, come questo [x x x] (one-dimensional)
. Creo ora una matrice diagonale , sigma
, con np.diag(S)
- finora, tutto bene. Ora, voglio ridimensionare questo nuovo array diagonale in modo che possa moltiplicarlo per un altro array che ho .
import numpy as np
...
shape = np.shape((6, 6)) #This will be some pre-determined size
sigma = np.diag(S) #diagonalise the matrix - this works
my_sigma = sigma.resize(shape) #Resize the matrix and fill with zeros - returns "None" - why?
Tuttavia, quando stampo il contenuto di my_sigma
, ottengo "None"
. Qualcuno può per favore indicarmi la direzione giusta, perché non posso immaginare che questo dovrebbe essere così complicato.
Grazie in anticipo per qualsiasi aiuto!
Casper
grafica:
ho questo:
[x x x]
voglio che questo:
[x 0 0]
[0 x 0]
[0 0 x]
[0 0 0]
[0 0 0]
[0 0 0] - or some similar size, but the diagonal elements are important.
Stai definendo shape(), diag() e ridimensiona(), o sono quelli di una libreria che stai utilizzando? – grieve
resize() proviene dalla libreria numpy, avrei dovuto specificarlo. – casper
Questo è numpy, giusto? Se sto capendo correttamente, sigma contiene dei dati, ma tu vuoi rendere sigma più grande e zero riempire i nuovi elementi. È corretto? Se hai solo bisogno di un nuovo array a riempimento zero, usa 'numpy.zeros ((6,6))' – gfortune