我正在寻找一种算法,将给定数量的多维数组(每个都具有相同的形状)合并为给定的比例 (x,y,z)。
例如 4 个形状为 (128,128,128) 且比例为 (1,1,4) 的数组与形状为 (128,128,512) 的数组。 或者 2 个形状为 (64,64,64) 且比例为 (1,2,1) 的数组与形状为 (64,128,64) 的数组
我知道如何使用 np.concatenate
手动执行此操作,但我需要一个通用算法来执行此操作。 (np.reshape
不起作用 - 这会打乱顺序)
edit: 有可能比例是(1,2,3),那么就要比较box的left_edge,才能知道放在哪里。每个数组都有一个对应的 block ,其属性为 left_edge (xmin, ymin, zmin)。我可以用 if 条件解决这个问题吗?
最佳答案
如果您的比例始终是一维的(即仅在一维中连接),您可以使用:
arrays = [...]
proportion = (1,1,4)
np.concatenate(arrays, axis=next(i for i,p in enumerate(proportion) if p>1))
否则你必须解释如何处理 proportion = (1,2,3)
关于python - numpy.concatenate 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154456/