[Numpy-discussion] How do I seed the radom number generator? (original) (raw)

Robert Kern robert.kern at gmail.com
Thu Jun 22 15:33:43 EDT 2006


Keith Goodman wrote:

How do I seed rand and randn?

If you can, please use the .rand() and .randn() methods on a RandomState object which you can initialize with whatever seed you like.

In [1]: import numpy as np rs In [2]: rs = np.random.RandomState([12345678, 90123456, 78901234])

In [3]: rs.rand(5) Out[3]: array([ 0.40355172, 0.27449337, 0.56989746, 0.34767024, 0.47185004])

In [5]: np.random.RandomState.seed? Type: method_descriptor Base Class: <type 'method_descriptor'> String Form: <method 'seed' of 'mtrand.RandomState' objects> Namespace: Interactive Docstring: Seed the generator.

 seed(seed=None)

 seed can be an integer, an array (or other sequence) of integers of any
 length, or None. If seed is None, then RandomState will try to read data
 from /dev/urandom (or the Windows analogue) if available or seed from
 the clock otherwise.

The rand() and randn() "functions" are actually references to methods on a global instance of RandomState. The .seed() method on that object is also similarly exposed as numpy.random.seed(). If you are writing new code, please explicitly use a RandomState object. Only use numpy.random.seed() if you must control code that uses the global rand() and randn() "functions" and you can't modify it.

-- Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco



More information about the NumPy-Discussion mailing list