在numpy中,为什么多维数组d [0] [0:2] [0] [0]不返回两个元素

时间:2016-10-14 01:55:57

标签: python arrays numpy

In [136]: d = np.ones((1,2,3,4))

In [167]: d[0][0][0:2][0]
Out[167]: array([ 1.,  1.,  1.,  1.])

如上所示,为什么它没有准确地返回2个元素

1 个答案:

答案 0 :(得分:0)

查看数组本身。它应该是自我解释的

>>> d
array([[[[ 1.,  1.,  1.,  1.],
         [ 1.,  1.,  1.,  1.],
         [ 1.,  1.,  1.,  1.]],

        [[ 1.,  1.,  1.,  1.],
         [ 1.,  1.,  1.,  1.],
         [ 1.,  1.,  1.,  1.]]]])
# first you grab the first and only element
>>> d[0]
array([[[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]],

       [[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]]])
# then you get the first element out of the two groups
>>> d[0][0]
array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
# thirdly, you get the two first elements as a list
>>> d[0][0][0:2]
array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
# finally, you get the first element of the list
>>> d[0][0][0:2][0]
array([ 1.,  1.,  1.,  1.])