在 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]]])
所以,我是 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]]])