如何切割numpy数组以获取第一行和最后两行

Mat*_*ijn 8 python numpy

据我所知,它没有在索引,切片和迭代 scipy教程中介绍,所以让我在这里问一下:

说我

x = np.array([[1,2],[3,4],[5,6],[7,8],[9,0]])
x: array([[1, 2],
          [3, 4],
          [5, 6],
          [7, 8],
          [9, 0]])
Run Code Online (Sandbox Code Playgroud)

如何切割数组以获取第一行和最后一行:

y: array([[1, 2],
          [3, 4],              
          [7, 8],
          [9, 0]])
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 8

我不知道是否有一种光滑的方式来做到这一点.您当然可以明确列出索引:

>>> x[[0,1,-2,-1]]
array([[1, 2],
       [3, 4],
       [7, 8],
       [9, 0]])
Run Code Online (Sandbox Code Playgroud)

或者使用r_帮助,如果我们想要从头部或尾部获得更多行,这可能会更方便:

>>> x[np.r_[0:2, -2:0]]
array([[1, 2],
       [3, 4],
       [7, 8],
       [9, 0]])
Run Code Online (Sandbox Code Playgroud)