类似的问题也曾被问过,但从来没有以我需要的形式出现过
我似乎很难理解NumPy切片行为
假设我有一个512x512x120形状的Numpy数组
vol1=some_numpy_array
print(x.shape) #result: (512,512,120)
我想对这个数组取一个“z-slice”,但是我最终得到的是一个512x120数组,而不是一个512x512数组 例如,我尝试以下代码
zSlice=(vol1[:][:][2]).squeeze()
print(zSlice.shape()) #result: (512,120)
为什么生成的数组形状是(512,120)
而不是(512,512)
?我如何解决这个问题
您必须立即切片:
因为重复执行
[:]
不会产生任何效果:这是因为
[:]
得到了整个列表。。。多次这样做不会改变任何事情vol1[:][:][2]
的问题是:vol1[:]
将给出整个数组,然后再次{您需要获取numpy数组切片:
现在,它将获取最外层和最外层轴上的所有项目,但对于最内层轴,仅获取索引2处的项目
相关问题 更多 >
编程相关推荐