我知道对于3d numpy数组我可以索引如下:
item = x[0,2,1]
或
item = x[0][2][1]
但切片工作对我来说很奇怪:
item = x[:,:,1]
与:
不同item = x[:][:][1]
我错过了什么?
答案 0 :(得分:6)
x[:]
将返回完整数组,而不进行任何实际切片。按照这个逻辑,x[:][:]
也是如此。
因此,x[:][:][1]
相当于 x[1]
。这就是为什么它与x[:,:,1]
不一样。
答案 1 :(得分:0)
我喜欢@ ffisegydd的回答,但我想指出这不是numpy数组独有的。在python中,语句result = A[i, j]
等同于result = A[(i, j)]
,语句result = A[i][j]
等同于:
tmp = A[i]
result = tmp[j]
所以,如果我使用字典:
A = {0 : "value for key 0",
(0, 1) : "value for key (0, 1)"}
print(A[0][1])
# a
print(A[0, 1])
# value for key (0, 1)