Skip to content

Commit 87f8ca5

Browse files
committed
DOC: fix doctests, benchmarks, emphasize each brng is a separate instance
1 parent a513351 commit 87f8ca5

15 files changed

+81
-69
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ benchmarks/env
174174
benchmarks/numpy
175175
# cythonized files
176176
cythonize.dat
177-
numpy/random/mtrand/mtrand.c
177+
numpy/random/_mtrand/mtrand.c
178178
numpy/random/*.c
179179
numpy/random/legacy/*.c
180180
numpy/random/_mtrand/randint_helpers.pxi

benchmarks/benchmarks/bench_random.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
import numpy as np
66

7-
from numpy.random import RandomState
8-
from numpy.random.randomgen import RandomGenerator
7+
from numpy.random import RandomState, RandomGenerator
98

109
class Random(Benchmark):
1110
params = ['normal', 'uniform', 'weibull 1', 'binomial 10 0.5',
@@ -95,7 +94,7 @@ def setup(self, brng):
9594
if brng == 'numpy':
9695
self.rg = np.random.RandomState()
9796
else:
98-
self.rg = RandomGenerator(getattr(np.random.randomgen, brng)())
97+
self.rg = RandomGenerator(getattr(np.random, brng)())
9998
self.rg.random_sample()
10099
self.int32info = np.iinfo(np.int32)
101100
self.uint32info = np.iinfo(np.uint32)
@@ -149,7 +148,7 @@ def setup(self, brng, args):
149148
if brng == 'numpy':
150149
self.rg = np.random.RandomState()
151150
else:
152-
self.rg = RandomGenerator(getattr(np.random.randomgen, brng)())
151+
self.rg = RandomGenerator(getattr(np.random, brng)())
153152
self.rg.random_sample()
154153

155154
def time_bounded(self, brng, args):

numpy/random/dsfmt.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ cdef class DSFMT:
106106
>>> from numpy.random import RandomGenerator, DSFMT
107107
>>> seed = random_entropy()
108108
>>> rs = [RandomGenerator(DSFMT(seed)) for _ in range(10)]
109-
# Advance rs[i] by i jumps
109+
# Advance each DSFMT instance by i jumps
110110
>>> for i in range(10):
111-
... rs[i].jump()
111+
... rs[i].brng.jump()
112112
113113
**State and Seeding**
114114
@@ -398,7 +398,7 @@ cdef class DSFMT:
398398
399399
Returns
400400
-------
401-
gen : numpy.random.randomgen.generator.RandomGenerator
401+
gen : numpy.random.RandomGenerator # ignore
402402
Random generator used this instance as the basic RNG
403403
"""
404404
if self._generator is None:

numpy/random/generator.pyx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,22 @@ cdef class RandomGenerator:
5858
5959
Examples
6060
--------
61-
>>> from np.random.randomgen import RandomGenerator
61+
>>> from numpy.random import RandomGenerator
6262
>>> rg = RandomGenerator()
6363
>>> rg.standard_normal()
64+
-0.203 # random
6465
6566
Using a specific generator
6667
67-
>>> from np.random.randomgen import MT19937
68+
>>> from numpy.random import MT19937
6869
>>> rg = RandomGenerator(MT19937())
6970
7071
The generator is also directly available from basic RNGs
7172
7273
>>> rg = MT19937().generator
7374
>>> rg.standard_normal()
75+
-0.203 # random
76+
7477
"""
7578
cdef public object brng
7679
cdef brng_t *_brng
@@ -352,14 +355,12 @@ cdef class RandomGenerator:
352355
353356
Examples
354357
--------
355-
>>> rg = np.random.randomgen.RandomGenerator() # need a RandomGenerator object
358+
>>> rg = np.random.RandomGenerator() # need a RandomGenerator object
356359
>>> rg.tomaxint((2,2,2))
357360
array([[[1170048599, 1600360186], # random
358361
[ 739731006, 1947757578]],
359362
[[1871712945, 752307660],
360363
[1601631370, 1479324245]]])
361-
>>> np.iinfo(np.int).max
362-
2147483647
363364
>>> rg.tomaxint((2,2,2)) < np.iinfo(np.int).max
364365
array([[[ True, True],
365366
[ True, True]],

numpy/random/mt19937.pyx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,13 @@ cdef class MT19937:
9898
generators should be initialized with the same seed to ensure that the
9999
segments come from the same sequence.
100100
101-
>>> from numpy.random.randomgen.entropy import random_entropy
102-
>>> from numpy.random.randomgen import RandomGenerator, MT19937
101+
>>> from numpy.random.entropy import random_entropy
102+
>>> from numpy.random import RandomGenerator, MT19937
103103
>>> seed = random_entropy()
104-
>>> rs = [RandomGenerator(MT19937(seed) for _ in range(10)]
105-
# Advance rs[i] by i jumps
104+
>>> rs = [RandomGenerator(MT19937(seed)) for _ in range(10)]
105+
# Advance each MT19937 instance by i jumps
106106
>>> for i in range(10):
107-
rs[i].jump(i)
107+
... rs[i].brng.jump(i)
108108
109109
References
110110
----------
@@ -355,7 +355,7 @@ cdef class MT19937:
355355
356356
Returns
357357
-------
358-
gen : numpy.random.randomgen.generator.RandomGenerator
358+
gen : numpy.random.RandomGenerator
359359
Random generator used this instance as the core PRNG
360360
"""
361361
if self._generator is None:

numpy/random/mtrand.pyx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ cdef class RandomState:
137137
The best method to access seed is to directly use a basic RNG instance.
138138
This example demonstrates this best practice.
139139
140-
>>> from numpy.random.randomgen import MT19937
140+
>>> from numpy.random import MT19937
141141
>>> from numpy.random import RandomState
142142
>>> brng = MT19937(123456789)
143143
>>> rs = RandomState(brng)
@@ -481,8 +481,6 @@ cdef class RandomState:
481481
[ 739731006, 1947757578]],
482482
[[1871712945, 752307660],
483483
[1601631370, 1479324245]]])
484-
>>> np.iinfo(np.int).max
485-
2147483647
486484
>>> rs.tomaxint((2,2,2)) < np.iinfo(np.int).max
487485
array([[[ True, True],
488486
[ True, True]],

numpy/random/pcg32.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ cdef class PCG32:
9595
The preferable method is to use sub-streams, which are generated by using the
9696
same value of ``seed`` and incrementing the second value, ``inc``.
9797
98-
>>> from randomgen import RandomGenerator, PCG32
98+
>>> from numpy.random import RandomGenerator, PCG32
9999
>>> rg = [RandomGenerator(PCG32(1234, i + 1)) for i in range(10)]
100100
101-
The alternative method is to call ``advance`` on a instance to
102-
produce non-overlapping sequences.
101+
The alternative method is to call ``advance`` with a different value on
102+
each instance to produce non-overlapping sequences.
103103
104104
>>> rg = [RandomGenerator(PCG32(1234, i + 1)) for i in range(10)]
105105
>>> for i in range(10):
106-
... rg[i].advance(i * 2**32)
106+
... rg[i].brng.advance(i * 2**32)
107107
108108
**State and Seeding**
109109
@@ -378,7 +378,7 @@ cdef class PCG32:
378378
379379
Returns
380380
-------
381-
gen : numpy.random.randomgen.generator.RandomGenerator
381+
gen : numpy.random.RandomGenerator
382382
Random generator used this instance as the core PRNG
383383
"""
384384
if self._generator is None:

numpy/random/pcg64.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,15 @@ cdef class PCG64:
104104
The preferable method is to use sub-streams, which are generated by using the
105105
same value of ``seed`` and incrementing the second value, ``inc``.
106106
107-
>>> from randomgen import RandomGenerator, PCG64
107+
>>> from numpy.random import RandomGenerator, PCG64
108108
>>> rg = [RandomGenerator(PCG64(1234, i + 1)) for i in range(10)]
109109
110-
The alternative method is to call ``advance`` on a single instance to
111-
produce non-overlapping sequences.
110+
The alternative method is to call ``advance`` with a different value on
111+
each instance to produce non-overlapping sequences.
112112
113113
>>> rg = [RandomGenerator(PCG64(1234, i + 1)) for i in range(10)]
114114
>>> for i in range(10):
115-
... rg[i].advance(i * 2**64)
115+
... rg[i].brng.advance(i * 2**64)
116116
117117
**State and Seeding**
118118
@@ -432,7 +432,7 @@ cdef class PCG64:
432432
433433
Returns
434434
-------
435-
gen : numpy.random.randomgen.generator.RandomGenerator
435+
gen : numpy.random.RandomGenerator
436436
Random generator using this instance as the core RNG
437437
"""
438438
if self._generator is None:

numpy/random/philox.pyx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,15 @@ cdef class Philox:
112112
in parallel applications by using a sequence of distinct keys where each
113113
instance uses different key.
114114
115-
>>> from randomgen import RandomGenerator, Philox
115+
>>> from numpy.random import RandomGenerator, Philox
116116
>>> rg = [RandomGenerator(Philox(1234)) for _ in range(10)]
117-
# Advance rs[i] by i jumps
117+
# Advance each Philox instance by i jumps
118118
>>> for i in range(10):
119-
... rg[i].jump(i)
119+
... rg[i].brng.jump(i)
120120
121121
Using distinct keys produces independent streams
122122
123-
>>> key = 2**196 + 2**132 + 2**65 + 2**33 + 2**17 + 2**9
123+
>>> key = 2**96 + 2**32 + 2**65 + 2**33 + 2**17 + 2**9
124124
>>> rg = [RandomGenerator(Philox(key=key+i)) for i in range(10)]
125125
126126
**State and Seeding**
@@ -144,14 +144,16 @@ cdef class Philox:
144144
145145
Examples
146146
--------
147-
>>> from randomgen import RandomGenerator, Philox
147+
>>> from numpy.random import RandomGenerator, Philox
148148
>>> rg = RandomGenerator(Philox(1234))
149149
>>> rg.standard_normal()
150+
0.123 # random
150151
151152
Identical method using only Philox
152153
153154
>>> rg = Philox(1234).generator
154155
>>> rg.standard_normal()
156+
0.123 # random
155157
156158
References
157159
----------
@@ -473,7 +475,7 @@ cdef class Philox:
473475
474476
Returns
475477
-------
476-
gen : numpy.random.randomgen.generator.RandomGenerator
478+
gen : numpy.random.RandomGenerator
477479
Random generator used this instance as the core PRNG
478480
"""
479481
if self._generator is None:

numpy/random/threefry.pyx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ cdef class ThreeFry:
107107
in parallel applications by using a sequence of distinct keys where each
108108
instance uses different key.
109109
110-
>>> from randomgen import RandomGenerator, ThreeFry
110+
>>> from numpy.random import RandomGenerator, ThreeFry
111111
>>> rg = [RandomGenerator(ThreeFry(1234)) for _ in range(10)]
112-
# Advance rs[i] by i jumps
112+
# Advance each ThreeFry instance by i jumps
113113
>>> for i in range(10):
114-
... rg[i].jump(i)
114+
... rg[i].brng.jump(i)
115115
116116
Using distinct keys produces independent streams
117117
@@ -139,14 +139,16 @@ cdef class ThreeFry:
139139
140140
Examples
141141
--------
142-
>>> from randomgen import RandomGenerator, ThreeFry
142+
>>> from numpy.random import RandomGenerator, ThreeFry
143143
>>> rg = RandomGenerator(ThreeFry(1234))
144144
>>> rg.standard_normal()
145+
0.123 # random
145146
146147
Identical method using only ThreeFry
147148
148149
>>> rg = ThreeFry(1234).generator
149150
>>> rg.standard_normal()
151+
0.123 # random
150152
151153
References
152154
----------
@@ -464,7 +466,7 @@ cdef class ThreeFry:
464466
465467
Returns
466468
-------
467-
gen : numpy.random.randomgen.generator.RandomGenerator
469+
gen : numpy.random.RandomGenerator
468470
Random generator used this instance as the core PRNG
469471
"""
470472
if self._generator is None:

numpy/random/threefry32.pyx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,11 @@ cdef class ThreeFry32:
109109
in parallel applications by using a sequence of distinct keys where each
110110
instance uses different key.
111111
112-
>>> from randomgen import RandomGenerator, ThreeFry32
112+
>>> from numpy.random import RandomGenerator, ThreeFry32
113113
>>> rg = [RandomGenerator(ThreeFry32(1234)) for _ in range(10)]
114-
# Advance rs[i] by i jumps
114+
# Advance each ThreeFry32 instance by i jumps
115115
>>> for i in range(10):
116-
... rg[i].jump(i)
116+
... rg[i].brng.jump(i)
117117
118118
Using distinct keys produces independent streams
119119
@@ -142,14 +142,16 @@ cdef class ThreeFry32:
142142
143143
Examples
144144
--------
145-
>>> from randomgen import RandomGenerator, ThreeFry32
145+
>>> from numpy.random import RandomGenerator, ThreeFry32
146146
>>> rg = RandomGenerator(ThreeFry32(1234))
147147
>>> rg.standard_normal()
148+
0.123 # random
148149
149150
Identical method using only ThreeFry32
150151
151152
>>> rg = ThreeFry32(1234).generator
152153
>>> rg.standard_normal()
154+
0.123 # random
153155
154156
References
155157
----------
@@ -460,7 +462,7 @@ cdef class ThreeFry32:
460462
461463
Returns
462464
-------
463-
gen : numpy.random.randomgen.generator.RandomGenerator
465+
gen : numpy.random.RandomGenerator
464466
Random generator used this instance as the core PRNG
465467
"""
466468
if self._generator is None:

numpy/random/xoroshiro128.pyx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ cdef class Xoroshiro128:
8484
in each worker process. All generators should be initialized with the same
8585
seed to ensure that the segments come from the same sequence.
8686
87-
>>> from randomgen import RandomGenerator, Xoroshiro128
87+
>>> from numpy.random import RandomGenerator, Xoroshiro128
8888
>>> rg = [RandomGenerator(Xoroshiro128(1234)) for _ in range(10)]
89-
# Advance rs[i] by i jumps
89+
# Advance each Xoroshiro128 instance by i jumps
9090
>>> for i in range(10):
91-
... rg[i].jump(i)
91+
... rg[i].brng.jump(i)
9292
9393
**State and Seeding**
9494
@@ -108,14 +108,16 @@ cdef class Xoroshiro128:
108108
109109
Examples
110110
--------
111-
>>> from randomgen import RandomGenerator, Xoroshiro128
111+
>>> from numpy.random import RandomGenerator, Xoroshiro128
112112
>>> rg = RandomGenerator(Xoroshiro128(1234))
113113
>>> rg.standard_normal()
114+
0.123 # random
114115
115116
Identical method using only Xoroshiro128
116117
117118
>>> rg = Xoroshiro128(1234).generator
118119
>>> rg.standard_normal()
120+
0.123 # random
119121
120122
References
121123
----------
@@ -350,7 +352,7 @@ cdef class Xoroshiro128:
350352
351353
Returns
352354
-------
353-
gen : numpy.random.randomgen.generator.RandomGenerator
355+
gen : numpy.random.RandomGenerator
354356
Random generator used this instance as the basic RNG
355357
"""
356358
if self._generator is None:

0 commit comments

Comments
 (0)