Python 获取Numpy数组的所有组合

Python 获取Numpy数组的所有组合,python,arrays,numpy,Python,Arrays,Numpy,如果我有一个Numpy数组,比如X=np.array([1,2,3,4,5]) 我想把这些数字的所有组合放到一个数组中 如果每一行都是X的组合,而长度是有多少个组合,我该如何得到一个数组呢?假设从你的问题中你实际上在寻找排列: 从itertools导入置换 将numpy作为np导入 x=np.数组([1,2,3,4,5]) 排列数组=np.asarray([p表示排列中的p(x)]) 打印(perm_array.shape) #印刷品(120,5) perm_数组的每一行将包含输入的排列 注意

如果我有一个Numpy数组,比如
X=np.array([1,2,3,4,5])
我想把这些数字的所有组合放到一个数组中


如果每一行都是X的组合,而长度是有多少个组合,我该如何得到一个数组呢?

假设从你的问题中你实际上在寻找排列:

从itertools导入置换
将numpy作为np导入
x=np.数组([1,2,3,4,5])
排列数组=np.asarray([p表示排列中的p(x)])
打印(perm_array.shape)
#印刷品(120,5)
perm_数组的每一行将包含输入的排列


注意排列的数量

在itertools中提供:

来自itertools导入组合的

X=np.数组([1,2,3,4,5])
X_combinations={}#字典键r:秩r的组合。
对于范围(len(X)+1)内的r:
X_组合[r]=列表(组合(X,r))
从pprint导入pprint
pprint(X_组合)
输出:

{0:[()],
1: [(1,), (2,), (3,), (4,), (5,)],
2: [(1, 2),
(1, 3),
(1, 4),
(1, 5),
(2, 3),
(2, 4),
(2, 5),
(3, 4),
(3, 5),
(4, 5)],
3: [(1, 2, 3),
(1, 2, 4),
(1, 2, 5),
(1, 3, 4),
(1, 3, 5),
(1, 4, 5),
(2, 3, 4),
(2, 3, 5),
(2, 4, 5),
(3, 4, 5)],
4: [(1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)],
5: [(1, 2, 3, 4, 5)]}

组合或排列?可能是重复的?该问题涉及到如何使用列表。我的问题是不同的,我特别想用Numpy数组来实现它,并以这样一种方式返回一个数组,如我的问题中所述