Python programs, particularly data science applications, often need to interact with multiple different random number generators.
The SeedBank package provides a unified interface to seeding them, along with APIs for deriving additional RNG seeds in a predictable way (using NumPy 1.17’s new random infrastructure) and construction random generators.
Credit for the name “seedbank” goes to Keith Moore.
To get started, just use the
seedbank.initialize() function to seed all available random
import seedbank seedbank.initialize(65000)
SeedBank will seed all of the following generators that are available:
NumPy legacy random
Numba’s NumPy random
cupy.random.seed(), also exposing
In addition, it will initialize a root seed for constructing new-style NumPy
If SeedBank doesn’t support your RNG yet, please submit a pull request.
- SeedBank API
- SeedBank Patterns
- Extending SeedBank
This material is based upon work supported by the National Science Foundation under Grant No. IIS 17-51278. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. This page has not been approved by Boise State University and does not reflect official university positions.