切片3d numpy数组 - 误解

Mar*_*urz 2 python numpy

我知道对于3d numpy数组我可以索引如下:

item = x[0,2,1] 
Run Code Online (Sandbox Code Playgroud)

要么

item = x[0][2][1]
Run Code Online (Sandbox Code Playgroud)

但切片工作对我来说很奇怪:

item = x[:,:,1]
Run Code Online (Sandbox Code Playgroud)

是不一样的:

item = x[:][:][1]
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Ffi*_*ydd 6

x[:]将返回完整数组,而不进行任何实际切片.通过这种逻辑,也将如此x[:][:].

因此,x[:][:][1] 相当于 x[1].这就是为什么它不一样的原因x[:,:,1].