dataI
的形状是(80,336,336)
z= np.zeros([80,800,800], dtype= dataI.dtype)
v=np.zeros_like(z)
centres = [(100,200),(400,100), (600,300), (500,400), (600,500)]
zooms = [[1,1,1], [1,0.6,0.6], [1,0.7,0.7], [1,0.8,0.8], [1,0.9,0.9]]
for cent,zoom in zip(centres,zooms):
dataZ = scipy.ndimage.zoom(dataI, zoom, order=3)
dimZ = dataZ.shape
off = [max(c-s//2,0) for c,s in zip(cent,dimZ)]
z[0:dataZ.shape[0],off[0]:off[0]+dimZ[1],off[1]:off[1]+dimZ[2]]=dataZ
我需要将缩放后的数据放入大数组z
。通过给出中心位置,我需要放置数据(如果重叠,取这些值的平均值)
但我得到了以下错误:
^{pr2}$我如何解决这个错误?在
问题是切片可以超出数组扩展,在这种情况下,只返回数组扩展中的元素:
因此,您的计算超出了范围,因此
z[0:dataZ.shape[0],off[0]:off[0]+dimZ[1],off[1]:off[1]+dimZ[2]]
不是您期望的形状!在我添加了一些调试语句:
^{pr2}$此打印:
我前面提到的适用于这里:
slice(560, 862, None)
超出了扩展,因此在第二个维度中缺少62
项:简单的解决方法:增加你的
z
的大小!在{{cd6>你知道吗?所以
相关问题 更多 >
编程相关推荐