Я думаю, что моя проблема должна быть очень простой, но я не могу найти никакой помощи в Интернете. Я очень новичок в Python, так что возможно, что Мне не хватает чего-то очень очевидного.Python: изменить размер существующего массива и заполнить нулями
У меня есть массив, S, вот так [x x x] (one-dimensional)
. Теперь я создаю диагональную матрицу , sigma
, с np.diag(S)
- пока что так хорошо. Теперь я хочу, чтобы изменил размер этого нового диагонального массива, чтобы я мог умножить его на другой массив, который у меня есть .
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?
Однако, когда я печатаю содержание my_sigma
, я получаю "None"
. Может кто-то пожалуйста указать мне в правильном направлении, потому что я не могу себе представить, что это должно быть так сложно.
Заранее благодарим за любую помощь!
Casper
Графический:
У меня есть это:
[x x x]
Я хочу это:
[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.
Вы определяете shape(), diag() и resize(), или те, которые вы используете в библиотеке? – grieve
resize() из библиотеки numpy, я должен был указать это. – casper
Это numpy, не так ли? Если я правильно понимаю, у сигмы есть данные, но вы хотите сделать сигму более крупной и нулевой - заполнить новые элементы. Это верно? Если вам нужен новый нулевой массив, используйте 'numpy.zeros ((6,6))' – gfortune