Numpy切片列表

时间:2018-04-23 08:47:42

标签: 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]]

我可能需要一些切片,可以是任何行和列的组合。 如果是行= [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的矩阵。顺便说一下,列总是等于线。

1 个答案:

答案 0 :(得分:2)

对于非连续索引,您可以这样做:

mat[[0,1,2,5],:][:,[0,1,2,5]]

即。首先获取指定的行(从中获取4x6矩阵),然后从中获取指定的列。