Skip to content

Commit

Permalink
ENH: Use NumPy's Generator class as a replacement for RandomState
Browse files Browse the repository at this point in the history
Use NumPy's `Generator` class as a replacement for `RandomState` for
random variarte generation methods.

`RandomState` was deprecated in NumPy 1.17.0.

Take advantage of the commit to document better the use of the `seed`
parameter.

Documentation:
https://numpy.org/doc/stable/reference/random/new-or-different.html#what-s-new-or-different
https://numpy.org/doc/stable/reference/random/generated/numpy.random.seed.html
  • Loading branch information
jhlegarreta committed Mar 24, 2024
1 parent 3b1e8d0 commit eae871f
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/eddymotion/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ def fit(
Number of parallel jobs.
seed : :obj:`int` or :obj:`bool`
Seed the random number generator (necessary when we want deterministic
estimation).
estimation). If an integer, the value is used to initialize the
generator; if True, an internal value is used to initialize it.
Return
------
Expand All @@ -86,8 +87,11 @@ def fit(
"""
align_kwargs = align_kwargs or {}

_seed = None
if seed or seed == 0:
np.random.seed(20210324 if seed is True else seed)
_seed = 20210324 if seed is True else seed

rng = np.random.default_rng(_seed)

if "num_threads" not in align_kwargs and omp_nthreads is not None:
align_kwargs["num_threads"] = omp_nthreads
Expand Down Expand Up @@ -120,7 +124,7 @@ def fit(
kwargs["xlim"] = dwdata.total_duration

index_order = np.arange(len(dwdata))
np.random.shuffle(index_order)
rng.shuffle(index_order)

single_model = model.lower() in (
"b0",
Expand Down

0 comments on commit eae871f

Please sign in to comment.