【发布时间】:2020-08-02 16:37:18
【问题描述】:
我以下面的数组为例:
lights = np.array([ [1,0,1], [0,1,1], [0,0,1], [1,1,1] ])
lights[0] 返回一个形状:(3,)
lights[0:1] 返回一个形状:(1, 3)
在这种情况下,我不明白 numpy 的逻辑是什么。 鉴于切片是独占的,[0:1] 类似于 [0]。 那么,为什么它会影响数组的形状呢?
【问题讨论】:
-
如果
lights是一个列表而不是一个数组会怎样? -
@hpaulj 我看不到你在这里的建议。如果它是一个列表,它没有形状,
lights[0:1]也不起作用。你能详细说明你想说什么吗? -
使用标量索引列表会删除嵌套级别。使用切片进行索引会保留嵌套级别。数组和列表的行为是一致的。
-
@hpaulj 这很有趣。我阅读了您的答案,并尝试在另一台计算机上对列表进行切片,就像我写第一篇评论时一样。你是对的,它是一样的。出于某种奇怪的原因,我在另一台计算机上遇到了错误。明天我得看看那里发生了什么。