Создайте список индексов с помощью:
import itertools, random
def select(size, pair_size):
g =itertools.combinations(range(size),pair_size)
alist = list(g)
random.shuffle(alist)
return alist
In [42]: alist = select(5,2)
In [43]: alist
Out[43]:
[(0, 3),
(1, 3),
(2, 3),
(0, 2),
(0, 4),
(3, 4),
(0, 1),
(2, 4),
(1, 2),
(1, 4)]
и примените его к населению:
In [44]: population = np.random.choice(np.arange(10,20), size=(5,2), replace=Tru
...: e)
In [45]: population
Out[45]:
array([[18, 19],
[16, 17],
[10, 11],
[10, 15],
[14, 15]])
In [46]: population[alist,]
Out[46]:
array([[[18, 19],
[10, 15]],
[[16, 17],
[10, 15]],
[[10, 11],
[10, 15]],
[[18, 19],
[10, 11]],
[[18, 19],
[14, 15]],
[[10, 15],
[14, 15]],
[[18, 19],
[16, 17]],
[[10, 11],
[14, 15]],
[[16, 17],
[10, 11]],
[[16, 17],
[14, 15]]])