Из документации numpy.random.choice
:
выбор (а, размер = нет, заменить = верно, р = нет)
Когда вы вызываете choice(a, 1, p)
, третий позиционный аргумент p
используется для параметра replace
1 , а не для параметра p
, как вы собираетесь.
Вам либо нужно вставить другой позиционный аргумент для replace
, чтобы p
стал четвертым позиционным аргументом:
choice(a, 1, True, p)
или явно передать p
в качестве аргумента ключевого слова:
choice(a, 1, p=p)
1 Это работает, потому что список также может быть оценен в логическом контексте. В этом случае [0.0, 1.0]
как непустой список будет оцениваться как True
.