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

2guxujil  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(139)

就我所见,索引、切片和迭代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]])

如何对数组进行切片以获取第一行和最后一行:

y: array([[1, 2],
          [3, 4],              
          [7, 8],
          [9, 0]])
dy1byipe

dy1byipe1#

我不知道是否有一个巧妙的方法来实现这一点。当然,你可以明确地列出索引:

>>> x[[0,1,-2,-1]]
array([[1, 2],
       [3, 4],
       [7, 8],
       [9, 0]])

或者使用r_来提供帮助,如果我们希望头部或尾部有更多行,这可能会更方便:

>>> x[np.r_[0:2, -2:0]]
array([[1, 2],
       [3, 4],
       [7, 8],
       [9, 0]])
iqjalb3h

iqjalb3h2#

或者,您可以使用索引将

mask = np.ones(len(x), dtype=np.bool)
mask[2:3] = False # that you want to remove
y = x[mask]

相关问题