On Tue, Jun 21, 2022 at 9:54 AM Pieter Eendebak <pieter.eende...@gmail.com>
wrote:

> Hi Robert,
>
> Thanks for the information and the offer. My use case is development of
> algorithms where I want to be able to test variations of the algorithm
> while keeping the same (simulated or generated) data. Related to that are
> example scripts part of the documentation that I want to always have the
> same result.
>
> Creating a generator and passing that (someway or the other) is a good
> approach, but it requires some refactoring of the code. Especially for
> third-party code I would like to avoid this (to be honest, most external
> code is still using the old numpy random number interface, so there we can
> use the old style of setting the seed)
>

Ah, okay, so you're replacing the old global with a new global Generator
instance in your own code as an easier transitional step.

# global instance
rng = np.random.default_rng()

def seed_global_rng(seed=None):
    # Create the same type of BitGenerator with the given seed, and then
copy its state over to the global.
    bg_cls = type(rng.bit_generator)
    bg = bg_cls(seed)
    rng.bit_generator.state = bg.state

I do recommend moving to passing around a Generator when you can; even in
the older system, we've always recommended passing around a RandomState
instance.

-- 
Robert Kern
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to