Python Numpy按列表切片
例如,我有一个这样的矩阵Python Numpy按列表切片,python,numpy,Python,Numpy,例如,我有一个这样的矩阵 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]] 我可能需要一些切片,可以是任何行和列的组合。
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]]
我可能需要一些切片,可以是任何行和列的组合。
如果是lines=[0,1,2]columns=[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的矩阵。顺便说一下,列总是等长的。对于非连续索引,您可以:
mat[[0,1,2,5],:][:,[0,1,2,5]]
i、 e.首先获取指定的行(从中获取4x6矩阵),然后从中获取指定的列。对于非连续索引,您可以执行以下操作:
mat[[0,1,2,5],:][:,[0,1,2,5]]
i、 首先获取指定的行(从中获取4x6矩阵),然后从中获取指定的列。非常感谢您可以将其缩短一点
mat[idx][:,idx]
非常感谢您可以将其缩短一点mat[idx][:,idx]