如何在Python中非连续地切片2D数组

时间:2017-09-14 19:43:30

标签: python arrays numpy

我的朋友A回来了,她现在看起来像

A = np.array([
    [0,1,1,1,0,0,0,0], 
    [1,0,0,1,0,0,0,0],
    [1,0,0,1,0,0,0,0],
    [1,1,1,0,0,0,0,0],
    [0,0,0,1,0,1,0,0],
    [0,0,0,0,1,0,1,1],
    [0,0,0,0,0,1,0,1],
    [0,0,0,0,0,1,1,0],
             ])

我需要找到H = A[(1,3,7), (2,3,6)]的子矩阵。但那会返回

array([0, 0, 1])

我期待第1,3和7行与第2,3和6列配对。我似乎无法找到该语法。

H = [[0,1,0],
     [1,0,0],
     [0,0,1]]

1 个答案:

答案 0 :(得分:2)

您可以使用np.ix_

A[np.ix_((1,3,7),(2,3,6))]
#array([[0, 1, 0],
#       [1, 0, 0],
#       [0, 0, 1]])