Set the internal state of the generator from a tuple.

For use if one has reason to manually (re-)set the internal state of the bit generator used by the RandomState instance. By default, RandomState uses the “Mersenne Twister”[1] pseudo-random number generating algorithm.

state{tuple(str, ndarray of 624 uints, int, int, float), dict}

The state tuple has the following items:

  1. the string ‘MT19937’, specifying the Mersenne Twister algorithm.

  2. a 1-D array of 624 unsigned integers keys.

  3. an integer pos.

  4. an integer has_gauss.

  5. a float cached_gaussian.

If state is a dictionary, it is directly set using the BitGenerators state property.


Returns ‘None’ on success.

See also



set_state and get_state are not needed to work with any of the random distributions in NumPy. If the internal state is manually altered, the user should know exactly what he/she is doing.

For backwards compatibility, the form (str, array of 624 uints, int) is also accepted although it is missing some information about the cached Gaussian value: state = ('MT19937', keys, pos).



M. Matsumoto and T. Nishimura, “Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator,” ACM Trans. on Modeling and Computer Simulation, Vol. 8, No. 1, pp. 3-30, Jan. 1998.