例如,我有一个像这样的矩阵
mat = np.diag((1,1,1,1,1,1))
print(mat)
out:[[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 1 0 0 0]
[0 0 0 1 0 0]
[0 0 0 0 1 0]
[0 0 0 0 0 1]]
我可能需要一些切片,可以是任何行和列的组合。 如果是行= [0,1,2]列= [0,1,2],我可以使用:
mat[0:3,0:3]
如果我需要行= [0,1,2,5]列= [0,1,2,5],我写道:
mat[[0,1,2,5],[0,1,2,5]]
我只能得到:
out:[1 1 1 1]
但我想得到一个4×4的矩阵。顺便说一下,列总是等于线。
答案 0 :(得分:2)
对于非连续索引,您可以这样做:
mat[[0,1,2,5],:][:,[0,1,2,5]]
即。首先获取指定的行(从中获取4x6矩阵),然后从中获取指定的列。