gpt4 book ai didi

python - 获取 numpy 数组的所有排列

转载 作者:太空狗 更新时间:2023-10-29 19:31:26 25 4
gpt4 key购买 nike

我有一个 numpy 数组 [0, 1, 1, 2, 2, 0, 1, ...],它只包含数字 0-k。我想创建一个新数组,其中包含 n 个可能的 0-k 排列数组。一个 k=2 和 n=6 的小例子:

a = [0, 1, 0, 2]
permute(a)
result = [[0, 1, 0, 2]
[0, 2, 0, 1]
[1, 0, 1, 2]
[2, 1, 2, 0]
[1, 2, 1, 0]
[2, 0, 2, 1]]

有没有人对如何实现这一目标有任何想法/解决方案?

最佳答案

您的 a 就是组合主义者所说的 multiset。 <强> sympy 图书馆有 various routines与他们一起工作。

>>> from sympy.utilities.iterables import multiset_permutations
>>> import numpy as np
>>> a = np.array([0, 1, 0, 2])
>>> for p in multiset_permutations(a):
... p
...
[0, 0, 1, 2]
[0, 0, 2, 1]
[0, 1, 0, 2]
[0, 1, 2, 0]
[0, 2, 0, 1]
[0, 2, 1, 0]
[1, 0, 0, 2]
[1, 0, 2, 0]
[1, 2, 0, 0]
[2, 0, 0, 1]
[2, 0, 1, 0]
[2, 1, 0, 0]

关于python - 获取 numpy 数组的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com