Numpy三维索引

时间:2014-02-18 22:05:21

标签: numpy

In [93]: a = np.arange(24).reshape(2, 3, 4)
In [94]: a[0, 1, ::2]
Out[94]: array([4, 6])

有人可以解释':: 2'在这里的含义吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

:: 2表示:在此维度中,获取具有对索引的所有“图层”(从0开始,按2计算)。

表示:将元素放在[0,1,0]和[0,1,2]并将其放入同一个数组中。

每个索引位置(此示例中有3个)是可索引的并且是“可切片的”。也许你在正常数组之前看过[this:slice]之类的切片。嗯...切片也可以有第三个值,即“步”值。

所以:[a:b:c]表示[startPosition:endPosition:step],其中不包括endPosition。 所以有:: 2表示start = 0,end = ...维度的结尾,step = 2。

你在该维度中最多有4个(参见你的重塑行),因此它将计算的索引是0和2(跳过1和3,3是最后一个元素)。

0 0 0 => 0
0 0 1 => 1
0 0 2 => 2
0 0 3 => 3
0 1 0 => 4 - > (0,1,0)通过切片挽救 0 1 1 => 5
0 1 2 => 6 - > (0,1,2)通过切片

获救