2016-02-29 133 views
1

我已经检查了numpy文档,但是一些索引仍然没有提到。我有一个numpy的阵列,使得它的形状(40000,432)和它的外观一样的东西:Subset a 3D numpy array

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

你想用numpyslicing

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

输出

(40000L, 30L) 

在形状输出的L指示整数是Python类型long的。

+0

啊,我看到我没有正确使用逗号。我认为这引用了所有的第一个轴? –

+0

是的,':'选择整个第一个轴 – gtlambert