子集一个3d numpy数组

时间:2016-02-29 22:04:27

标签: python arrays numpy indexing

我已经检查了numpy文档,但是一些索引仍然没有找到我。我有一个numpy数组,它的形状是(40000,432),它看起来像:

arr = [[1,2,3......431,432],
       [1,2,3......431,432],
       [1,2,3......431,432],
       ....................
       [1,2,3......431,432]'
       [1,2,3......431,432]]

我想在一个范围(即20-50)上对每个数组进行子集化,以便形状为(40000,30)并且它看起来像:

subarr = [[20,21,22...48,49,50],
          [20,21,22...48,49,50],
          [20,21,22...48,49,50],
          .....................
          [20,21,22...48,49,50]]

我尝试的所有东西要么给我一个错误,要么给我形状(30,432),这不是我需要的。如何沿着我想要的轴对二维数组进行子集?

1 个答案:

答案 0 :(得分:2)

您想使用numpy slicing

arr = np.zeros((40000, 432))
subarr = arr[:, 20:50]
print(subarr.shape)

<强>输出

(40000L, 30L)

形状输出中的L表示整数是Python类型long