Python numpy数组的缺失循环置换

Python numpy数组的缺失循环置换,python,numpy,dictionary,Python,Numpy,Dictionary,我有一个numpy数组,每个数组包含2个浮点数: Unit_1 = [40000.0, 47000.0] Unit_2 = [12000.0, 14000.0] Unit_3 = [16000.0, 18000.0] 我想根据单位值为单位组合建立排列,如: [(40000, 12000, 16000), (40000, 12000, 18000), (40000, 14000, 160000), (40000, 14000, 18000).........] 获取所有可能的排列 我正在使用以

我有一个numpy数组,每个数组包含2个浮点数:

Unit_1 = [40000.0, 47000.0]
Unit_2 = [12000.0, 14000.0]
Unit_3 = [16000.0, 18000.0]
我想根据单位值为单位组合建立排列,如:

[(40000, 12000, 16000), (40000, 12000, 18000), (40000, 14000, 160000), (40000, 14000, 18000).........]
获取所有可能的排列

我正在使用以下命令:

list(list(zip(r, p, q)) for (r, p,q) in zip(repeat(Unit_1), permutations(Unit_2), permutations(Unit_3)))
它给出的输出是:

[[(40000.0, 12000.0, 16000.0), (47000.0, 14000.0, 18000.0)], [(40000.0, 14000.0, 18000.0), (47000.0, 12000.0, 16000.0)]]

如何获得剩余的排列?

您似乎不需要排列,而是需要3个列表的笛卡尔乘积。使用
itertools.product

items = list(itertools.product(Unit_1, Unit_2, Unit_3))
要生成排列,您需要上述集合中每个项目的排列。比如

perms = sum((list(permutations(item)) for item in items), [])

我尝试了列表(产品([Unit_1,Unit_2,Unit_3],repeat=3]),但它没有结合第三个!有没有可能把单位的顺序重新排列得太像了,而不是仅仅(单位1,单位2,单位3),输出可以是排列像(单位2,单位3,单位1)等等?苏丹:在这种情况下,你需要得到产品每一项的排列
itertools
也有排列我尝试使用list(it.permutations(it.product(Data1,Data2,Data3),r=1))但输出与list(itertools.product(Unit_1,Unit_2,Unit_3))相同您有多少个
Unit
s?它们总是每个都有2个元素吗?单位可以是“n”,但它们总是每个都有2个元素