python - numpy.concatenate 多维数组

标签 python arrays multidimensional-array numpy

我正在寻找一种算法,将给定数量的多维数组(每个都具有相同的形状)合并为给定的比例 (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/

相关文章:

c++ - 在数组中查找模式的最有效方法?

python - 将多维 Json 数组解析为 Python

java - 使用 foreach 打印多维数组

python - 为什么我的二维列表最多包含 2 个项目

python - 1.10 中关于 django.shortcuts.render() 方法签名的困惑

python - Pandas - Excel 浮点解释错误

python - flask 缓存 : list keys based on a pattern?

java - 替换二维数组中的行和列

php - json_decode 不适用于我的字符串

python - Django:使用来自另一个 CharField 的数据自动生成一个 CharField