首页 > 解决方案 > 将单位矩阵嵌套在另一个更大的矩阵中

问题描述

我正在尝试创建一个 NxN 矩阵,它在左下角的条目上有一个 1,然后在右上角有一个 (N-1) 单位矩阵。我已经尝试了所有我能想到的方法,但似乎无法做到这一点,但我对 python 还是很陌生,有没有办法做到这一点?

标签: pythonmatrix

解决方案


最简单的numpy:

>>> import numpy as np
>>> N = 4
>>> np.roll(np.identity(N), 1, axis=1)
array([[0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.],
       [1., 0., 0., 0.]])

使用香草蟒:

>>> N = 4
>>> matrix = [[0]*N for _ in range(N)]
>>> for i in range(N):
        matrix[i][(i+1)%N] = 1
>>> matrix
[[0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [1, 0, 0, 0]]

推荐阅读