我有一个30个浮点数的数组,我需要取这个数组中4个浮点数的所有排列。你知道吗
显然这会产生大量的排列。我需要一个有效的方法来减少排列的数量。我相信一种方法可能是限制每个数字最多使用n次(比如8次)来进行排列。你知道吗
怎么做?我似乎找不到一种方法,在计算完完整的排列列表后,不使用循环过滤掉值,这太慢了。关于如何减少排列数量的任何其他建议都是非常受欢迎的,我使用的是python3。 非常感谢
我目前正在使用
value_array = np.random.rand(30,)
perm_array = permutations(value_array, 4)
perm_array = np.array(list(perm_array))
data = pd.DataFrame(perm_array, columns=["a", "b", "c", "d"])
一个简单的例子输出我想。。。 如果我有数字(1,2,3,4,5,6,7,8,9),我想要2的所有排列,但只允许一个元素被使用3次。。。你知道吗
我期望(1,2),(1,3),(1,4),(2,3),(2,4),(3,4),(5,6)。。。。 请注意,在1被使用了3次之后,它就不再使用了,然后2和3就不再使用了
因为熊猫是被标记的,所以这里有一种方法是使用} 和列表理解:
itertools
和^{输出:
相关问题 更多 >
编程相关推荐