numpy. Случайные функции дают постоянные значения на маниме - PullRequest
0 голосов
/ 28 мая 2020

Недавно я понял, что случайные функции на numpy всегда дают одно и то же значение при использовании в Scene, как в этом примере:

from manimlib.imports import *

def r():
    return np.random.rand(5)

class MyScene(Scene):
    def construct(self):
        print(r())        

уступит и более тех же значений:

manim foo.py MyScene -p
...
[0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]

1 Ответ

1 голос
/ 28 мая 2020

Если посмотреть на manim / manimlib / scene / scene.py , видно, что существует параметр конфигурации random_seed, который по умолчанию равен 0. Когда создается Scene, он вызывает random.random.seed, устанавливающий состояние генератора случайных чисел на это значение.

Чтобы снова получить случайные числа, установите его на None как таковое:

def r():
    return np.random.rand(5)

class MyScene(Scene):
    CONFIG = dict(random_seed=None)
    def construct(self):
        print(r())
...