Генерация всех возможных значений в ndarray в numpy?
Я использую гамбит в Python для симуляции мира в игровой форме. Одним из конструктов гамбита является сохранение "результатов" для набора решений, принимаемых каждым вовлеченным игроком. Это имеет вид:
game[d1,d2,d3,...,dn][n] = payoff
где d1
индекс решения, принятого игроком 1, d2
индекс решения, принятого игроком 2, и так далее, и n
это индекс игрока, для которого payoff
хранится.
Теперь может быть переменное количество игроков, поэтому измерение индекса передается в game
объект может измениться
как мне создать серию из [0,0,...,0]
через [8,8,...,8]
(где измерение = количество игроков = n), чтобы я мог сохранить их в [d1,d2,d3,...,dn]
?
1 ответ
Посмотрите на питона itertools
модуль. Это звучит как product
Функция будет делать то, что вы хотите.
Пример:
import itertools as it
list(it.product(*[range(2)]*3))
Дает все списки длины три с двумя элементами
[(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(1, 0, 0),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1)]
Есть много других возможностей с itertools
в частности это также обеспечивает permutations
а также combinations
,