【发布时间】:2017-04-12 19:19:51
【问题描述】:
给定一个整数k,我将如何创建一个具有序列1 到k 的所有可能排列的排列矩阵?例如,让我们考虑k=2。然后我想创建矩阵:
1 2
2 1
对于k=3:
1 1 2 2 3 3
2 3 1 3 1 2
3 2 3 1 2 1
我尝试过使用numpy.random.permutation,但这只会产生一个排列。所以,我可以继续使用这个函数,添加唯一的排列,直到列数等于k!,但这似乎非常低效。
【问题讨论】:
-
将
itertools.permutations输入一个numpy 数组怎么样? -
@YakymPirozhenko 是否可以在不导入
itertools的情况下做到这一点? -
好吧,除非您想编写自己的函数来生成排列列表,否则不会。此外,由于
itertools是一个内置模块,除非您有一些明确的限制,否则我看不到导入的太多缺点。 -
你想到了什么样的
k?如果矩阵是十几个或更多,则该矩阵将不适合 RAM。 -
@zaq 好点哈哈