2016-11-22 79 views
1

我想从3d numpy数组中提取某些列。想象一下,一个3D numpy的阵列状提取3d numpy数组的某些列

[[[ 65 234 169] 
    [203 191 245] 
    [ 36 58 196] 
    [207 208 143] 
    [251 208 187]] 

[[ 79 69 237] 
    [ 13 124 42] 
    [104 165 82] 
    [170 178 178] 
    [ 66 42 210]] 

[[ 40 163 219] 
    [142 37 140] 
    [ 75 205 143] 
    [246 30 221] 
    [ 16 98 102]]] 

如果 - 例如 - 列2-4应该被提取出来,我希望得到一个得到的3D阵列状

[[[203 191 245] 
    [ 36 58 196] 
    [207 208 143]] 

[[ 13 124 42] 
    [104 165 82] 
    [170 178 178]] 

[[142 37 140] 
    [ 75 205 143] 
    [246 30 221]]] 

我一直在阵列玩弄索引和切片几个小时,但我没有得到它的工作。 任何今天都可以帮助我吗?

在此先感谢和问候。

+0

指数与那些索引第二轴线 - https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#integer-array-indexing – Divakar

回答

4
In [12]: array 
Out[12]: 
array([[[ 65, 234, 169], 
    [203, 191, 245], 
    [ 36, 58, 196], 
    [207, 208, 143], 
    [251, 208, 187]], 

    [[ 79, 69, 237], 
    [ 13, 124, 42], 
    [104, 165, 82], 
    [170, 178, 178], 
    [ 66, 42, 210]], 

    [[ 40, 163, 219], 
    [142, 37, 140], 
    [ 75, 205, 143], 
    [246, 30, 221], 
    [ 16, 98, 102]]]) 

In [13]: array[:, 1:4, :] 
Out[13]: 
array([[[203, 191, 245], 
    [ 36, 58, 196], 
    [207, 208, 143]], 

    [[ 13, 124, 42], 
    [104, 165, 82], 
    [170, 178, 178]], 

    [[142, 37, 140], 
    [ 75, 205, 143], 
    [246, 30, 221]]])