Numpy Arange диагональный массив - PullRequest
0 голосов
/ 26 августа 2018

Я хотел бы создать квадратный массив numpy, чтобы он начинал считать с диагонали. Вы знаете одну строчку для этого?

Пример с 5x5:

array([[ 1.,  2.,  3.,  4.,  5.],
       [ 0.,  1.,  2.,  3.,  4.],
       [ 0.,  0.,  1.,  2.,  3.],
       [ 0.,  0.,  0.,  1.,  2.],
       [ 0.,  0.,  0.,  0.,  1.]])

Ответы [ 2 ]

0 голосов
/ 26 августа 2018
>>> mat = np.vstack((np.concatenate((np.zeros(i),np.arange(1,5-i+1))) for i in range(0,5)))
>>> mat 
array([[1., 2., 3., 4., 5.],
       [0., 1., 2., 3., 4.],
       [0., 0., 1., 2., 3.],
       [0., 0., 0., 1., 2.],
       [0., 0., 0., 0., 1.]])
0 голосов
/ 26 августа 2018
In [49]: np.identity(5).cumsum(axis=1).cumsum(axis=1)
Out[49]:
array([[ 1.,  2.,  3.,  4.,  5.],
       [ 0.,  1.,  2.,  3.,  4.],
       [ 0.,  0.,  1.,  2.,  3.],
       [ 0.,  0.,  0.,  1.,  2.],
       [ 0.,  0.,  0.,  0.,  1.]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...