(n,b,c,a,...,a)在numpy数组中的所有排列

时间:2017-07-15 11:13:15

标签: python numpy permutation

对于初学者,我们考虑两个不同的浮点值ab以及一个整数d。我想创建一个包含

所有排列的numpy.array
(b, a, a, ..., a)

其中向量的长度为d+1。例如,d=2,我想得到

a = 3.14
b = 2.71
numpy.array([
    [b, a, a],
    [a, b, a],
    [a, a, b],
    ])

虽然这种情况很容易手工生成,但对我来说更有趣的是

的排列
(b, b, a, a, ..., a)
(b, c, a, a, ..., a)
(b, b, b, a, ..., a)

(其中c是与ab不同的浮点数。

第一个将从

开始
numpy.array([
    [b, b, a, ..., a],
    [b, a, b, ..., a],
    ...
    [b, a, ..., a, b],
    [a, b, b, a, ..., a],
    ...
    ])

任何提示?

1 个答案:

答案 0 :(得分:2)

您可以使用itertools.permutations执行此任务。

from itertools import permutations

a = [1.0, 2.0, 2.0]
perms = set(permutations(a))