flopscope.numpy.random.default_rng
fnp.random.default_rng(seed=None)[flopscope source]
default_rng(seed=None) Construct a new Generator with the default BitGenerator (PCG64).
Adapted from NumPy docs np.random.default_rng
Construct a new Generator with default BitGenerator.
Parameters
- seed:{None, int, array_like[ints], SeedSequence, BitGenerator, Generator, RandomState}, optional
A seed to initialize the
BitGenerator. If None, then fresh, unpredictable entropy will be pulled from the OS. If anintorarray_like[ints]is passed, then all values must be non-negative and will be passed toSeedSequenceto derive the initialBitGeneratorstate. One may also pass in aSeedSequenceinstance. Additionally, when passed aBitGenerator, it will be wrapped byGenerator. If passed aGenerator, it will be returned unaltered. When passed a legacyRandomStateinstance it will be coerced to aGenerator.
Returns
- :Generator
The initialized generator object.
Notes
If seed is not a BitGenerator or a Generator, a new BitGenerator
is instantiated. This function does not manage a default global instance.
See seeding_and_entropy for more information about seeding.
Examples
default_rng is the recommended constructor for the random number class
Generator. Here are several ways we can construct a random
number generator using default_rng and the Generator class.
Here we use default_rng to generate a random float:
>>> import flopscope.numpy as fnp
>>> rng = flops.random.default_rng(12345)
>>> print(rng)
Generator(PCG64)
>>> rfloat = rng.random()
>>> rfloat
0.22733602246716966
>>> type(rfloat)
<class 'float'>Here we use default_rng to generate 3 random integers between 0
(inclusive) and 10 (exclusive):
>>> import flopscope.numpy as fnp
>>> rng = flops.random.default_rng(12345)
>>> rints = rng.integers(low=0, high=10, size=3)
>>> rints
array([6, 2, 7])
>>> type(rints[0])
<class 'flops.int64'>Here we specify a seed so that we have reproducible results:
>>> import flopscope.numpy as fnp
>>> rng = flops.random.default_rng(seed=42)
>>> print(rng)
Generator(PCG64)
>>> arr1 = rng.random((3, 3))
>>> arr1
array([[0.77395605, 0.43887844, 0.85859792],
[0.69736803, 0.09417735, 0.97562235],
[0.7611397 , 0.78606431, 0.12811363]])If we exit and restart our Python interpreter, we'll see that we generate the same random numbers again:
>>> import flopscope.numpy as fnp
>>> rng = flops.random.default_rng(seed=42)
>>> arr2 = rng.random((3, 3))
>>> arr2
array([[0.77395605, 0.43887844, 0.85859792],
[0.69736803, 0.09417735, 0.97562235],
[0.7611397 , 0.78606431, 0.12811363]])