在 python numpy 模块中建立索引

indexing in python numpy module

所以,我是 python 的新手,正在学习 NumPy 模块。 这是我的数组

c = np.array([[[  0,   1,   2],
               [ 10,  12,  13]],
              [[100, 101, 102],
               [110, 112, 113]]])

在上面的数组中,如果我尝试通过

访问它
c[:1,0:]

它产生的预期输出是

# expected because print from initial to row 1,0 excluding row 1,0
 array([[[ 0,  1,  2],  
         [10, 12, 13]]]) 

但现在当我尝试通过

访问它时
c[:1,1:]

它产生的输出

array([[[10, 12, 13]]])

为什么???

这是一个三维数组。您可以使用

查看
print(c.shape)

产生

(2, 2, 3)

3D数组真的是你想做的吗?

如果是这样,如果您使用两个索引而不是三个索引对其进行切片,则意味着第三个隐式为 :。所以 c[1, 1] 等价于 c[1, 1, :] 等价于 c[1, 1, 0:3]

并且您的查询 c[:1,1:] 等同于 c[0, 1, 0:3]:这是正确的结果。

现在根据您的评论,我猜您希望重塑、过滤和重塑:

c.reshape(4, -1)[:3,:].reshape(1, 3, -1)

产量

array([[[  0,   1,   2],
        [ 10,  12,  13],
        [100, 101, 102]]])