Creo que mi problema debería ser muy simple, sin embargo, no puedo encontrar ninguna ayuda en Internet en absoluto. Soy muy nuevo en Python, por lo que es posible que Me falta algo muy obvio.Python: cambiar el tamaño de una matriz existente y llenar con ceros
Tengo una matriz, S, como esta [x x x] (one-dimensional)
. Ahora creo una matriz diagonal , sigma
, con np.diag(S)
- hasta ahora, muy bien. Ahora, quiero redimensionar esta nueva matriz diagonal para que pueda multiplicarla por otra matriz que tenga .
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?
Sin embargo, al imprimir el contenido de my_sigma
, me sale "None"
. ¿Puede alguien por favor señalarme en la dirección correcta, porque no puedo imaginar que esto debería ser tan complicado.
¡Gracias de antemano por cualquier ayuda!
Casper
gráfica:
tengo esto:
[x x x]
quiero esto:
[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.
¿Está definiendo shape(), diag() y resize(), o son los de una biblioteca que está utilizando? – grieve
resize() es de la biblioteca numpy, debería haber especificado eso. – casper
Esto es numpy, ¿verdad? Si estoy entendiendo correctamente, sigma tiene datos, pero quieres hacer que sigma sea más grande y llenar los nuevos elementos. ¿Es eso correcto? Si solo necesita una nueva matriz con cero relleno, use 'numpy.zeros ((6,6))' – gfortune