Python - n维立方体的角坐标

标签 python itertools hypercube

我试图从每个维度的最小值和最大值列表中获取 n 维立方体的坐标。我能够使用 for 循环获得角,但我想概括为任意数量的维度。

所以例如:

mins = [-1,-2,-3]
maxes = [1,2,3]

会给坐标:
(-1, -2, -3), (-1, -2, 3), (-1, 2, -3), (-1, 2, 3),
(1, 2, 3), (1, 2, -3), (1, -2, 3), (1, -2, -3)

这实质上是通过两个列表查找所有路径,为每个索引从其中一个列表中选择一个值。我见过给出路径数量或最快路径的算法,但我还没有找到一个枚举所有可能路径的算法。

我假设 itertools 会进入解决方案,但无法弄清楚如何以给出所需结果的方式使用产品、排列和组合。最接近的是:
list(itertools.product((xmin, xmax), (ymin, ymax), (zmin, zmax)))

最佳答案

你很接近,*zip( ... )是你要找的:

>>> list(itertools.product(*zip([-1,-2,-3],[1,2,3])))
[(-1, -2, -3), (-1, -2, 3), (-1, 2, -3), (-1, 2, 3), (1, -2, -3), (1, -2, 3), (
, 2, -3), (1, 2, 3)]

关于Python - n维立方体的角坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058491/

相关文章:

python - 获取系统上所有可能的 python 模块的列表

java - 4D 到 3D 透视投影

python - 从椭球置信区域均匀采样

python3.8在mac上尝试git commit到bitbucket时没有这样的文件或目录

python - 使用神经网络对 KDD Cup 99 数据集建模

python - OpenCv 按位运算物理意义

java - 是否有相当于Python的Python的itertools?

python - 删除二维数组中无序重复项的最省时方法是什么?

python - itertools中chain和chain.from_iterable有什么区别?

sorting - 如何使用 MPI_CART 将进程映射到超立方体