我有一个问题......
我使用numpy.array
创建了shape=(4,128,256,256)
。
如果我打印出以下内容:
print shape(x[:][3][1][:])
输出为shape=(256,256)
,而不是我预期的(4,256)
...
声明
print x[:][4][1][1]
产生错误:index out of bounds
经过一些尝试和错误后,在我看来,如果另一个带有离散值的参数跟在后面,则[:]不起作用......
我通过使用循环解决了当前的问题,但是对于将来我想了解我做错了什么......
感谢您的帮助......
答案 0 :(得分:2)
要获得你想要的东西你必须正确地进行缩进:
x[:, 3, 1, :].shape => (4, 256)
numpy
数组不是标准列表
如果您执行x[:][3][1][:]
,则实际执行以下操作:
x1 = x[:] # get the whole array
x2 = x1[3] # get the fourth element along the first dimension
x2.shape => (128, 256, 256)
x3 = x2[1] # get the second element along the first dimension of `x2`
x3.shape => (256, 256)
x3[:] # get all `x3`
有关索引编制的更多说明,请参阅the numpy documentation
关于
时的错误x[:][4][1][1]
您得到index out of bounds
,因为x[:]
是整个数组,第一维是4,所以x[:][4]
不存在