214 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			214 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								"""
							 | 
						||
| 
								 | 
							
								========================
							 | 
						||
| 
								 | 
							
								Random Number Generation
							 | 
						||
| 
								 | 
							
								========================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Use ``default_rng()`` to create a `Generator` and call its methods.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								=============== =========================================================
							 | 
						||
| 
								 | 
							
								Generator
							 | 
						||
| 
								 | 
							
								--------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								Generator       Class implementing all of the random number distributions
							 | 
						||
| 
								 | 
							
								default_rng     Default constructor for ``Generator``
							 | 
						||
| 
								 | 
							
								=============== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								============================================= ===
							 | 
						||
| 
								 | 
							
								BitGenerator Streams that work with Generator
							 | 
						||
| 
								 | 
							
								--------------------------------------------- ---
							 | 
						||
| 
								 | 
							
								MT19937
							 | 
						||
| 
								 | 
							
								PCG64
							 | 
						||
| 
								 | 
							
								PCG64DXSM
							 | 
						||
| 
								 | 
							
								Philox
							 | 
						||
| 
								 | 
							
								SFC64
							 | 
						||
| 
								 | 
							
								============================================= ===
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								============================================= ===
							 | 
						||
| 
								 | 
							
								Getting entropy to initialize a BitGenerator
							 | 
						||
| 
								 | 
							
								--------------------------------------------- ---
							 | 
						||
| 
								 | 
							
								SeedSequence
							 | 
						||
| 
								 | 
							
								============================================= ===
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Legacy
							 | 
						||
| 
								 | 
							
								------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For backwards compatibility with previous versions of numpy before 1.17, the
							 | 
						||
| 
								 | 
							
								various aliases to the global `RandomState` methods are left alone and do not
							 | 
						||
| 
								 | 
							
								use the new `Generator` API.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								Utility functions
							 | 
						||
| 
								 | 
							
								-------------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								random               Uniformly distributed floats over ``[0, 1)``
							 | 
						||
| 
								 | 
							
								bytes                Uniformly distributed random bytes.
							 | 
						||
| 
								 | 
							
								permutation          Randomly permute a sequence / generate a random sequence.
							 | 
						||
| 
								 | 
							
								shuffle              Randomly permute a sequence in place.
							 | 
						||
| 
								 | 
							
								choice               Random sample from 1-D array.
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								Compatibility
							 | 
						||
| 
								 | 
							
								functions - removed
							 | 
						||
| 
								 | 
							
								in the new API
							 | 
						||
| 
								 | 
							
								-------------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								rand                 Uniformly distributed values.
							 | 
						||
| 
								 | 
							
								randn                Normally distributed values.
							 | 
						||
| 
								 | 
							
								ranf                 Uniformly distributed floating point numbers.
							 | 
						||
| 
								 | 
							
								random_integers      Uniformly distributed integers in a given range.
							 | 
						||
| 
								 | 
							
								                     (deprecated, use ``integers(..., closed=True)`` instead)
							 | 
						||
| 
								 | 
							
								random_sample        Alias for `random_sample`
							 | 
						||
| 
								 | 
							
								randint              Uniformly distributed integers in a given range
							 | 
						||
| 
								 | 
							
								seed                 Seed the legacy random number generator.
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								Univariate
							 | 
						||
| 
								 | 
							
								distributions
							 | 
						||
| 
								 | 
							
								-------------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								beta                 Beta distribution over ``[0, 1]``.
							 | 
						||
| 
								 | 
							
								binomial             Binomial distribution.
							 | 
						||
| 
								 | 
							
								chisquare            :math:`\\chi^2` distribution.
							 | 
						||
| 
								 | 
							
								exponential          Exponential distribution.
							 | 
						||
| 
								 | 
							
								f                    F (Fisher-Snedecor) distribution.
							 | 
						||
| 
								 | 
							
								gamma                Gamma distribution.
							 | 
						||
| 
								 | 
							
								geometric            Geometric distribution.
							 | 
						||
| 
								 | 
							
								gumbel               Gumbel distribution.
							 | 
						||
| 
								 | 
							
								hypergeometric       Hypergeometric distribution.
							 | 
						||
| 
								 | 
							
								laplace              Laplace distribution.
							 | 
						||
| 
								 | 
							
								logistic             Logistic distribution.
							 | 
						||
| 
								 | 
							
								lognormal            Log-normal distribution.
							 | 
						||
| 
								 | 
							
								logseries            Logarithmic series distribution.
							 | 
						||
| 
								 | 
							
								negative_binomial    Negative binomial distribution.
							 | 
						||
| 
								 | 
							
								noncentral_chisquare Non-central chi-square distribution.
							 | 
						||
| 
								 | 
							
								noncentral_f         Non-central F distribution.
							 | 
						||
| 
								 | 
							
								normal               Normal / Gaussian distribution.
							 | 
						||
| 
								 | 
							
								pareto               Pareto distribution.
							 | 
						||
| 
								 | 
							
								poisson              Poisson distribution.
							 | 
						||
| 
								 | 
							
								power                Power distribution.
							 | 
						||
| 
								 | 
							
								rayleigh             Rayleigh distribution.
							 | 
						||
| 
								 | 
							
								triangular           Triangular distribution.
							 | 
						||
| 
								 | 
							
								uniform              Uniform distribution.
							 | 
						||
| 
								 | 
							
								vonmises             Von Mises circular distribution.
							 | 
						||
| 
								 | 
							
								wald                 Wald (inverse Gaussian) distribution.
							 | 
						||
| 
								 | 
							
								weibull              Weibull distribution.
							 | 
						||
| 
								 | 
							
								zipf                 Zipf's distribution over ranked data.
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== ==========================================================
							 | 
						||
| 
								 | 
							
								Multivariate
							 | 
						||
| 
								 | 
							
								distributions
							 | 
						||
| 
								 | 
							
								-------------------- ----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								dirichlet            Multivariate generalization of Beta distribution.
							 | 
						||
| 
								 | 
							
								multinomial          Multivariate generalization of the binomial distribution.
							 | 
						||
| 
								 | 
							
								multivariate_normal  Multivariate generalization of the normal distribution.
							 | 
						||
| 
								 | 
							
								==================== ==========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								Standard
							 | 
						||
| 
								 | 
							
								distributions
							 | 
						||
| 
								 | 
							
								-------------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								standard_cauchy      Standard Cauchy-Lorentz distribution.
							 | 
						||
| 
								 | 
							
								standard_exponential Standard exponential distribution.
							 | 
						||
| 
								 | 
							
								standard_gamma       Standard Gamma distribution.
							 | 
						||
| 
								 | 
							
								standard_normal      Standard normal distribution.
							 | 
						||
| 
								 | 
							
								standard_t           Standard Student's t-distribution.
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								Internal functions
							 | 
						||
| 
								 | 
							
								-------------------- ---------------------------------------------------------
							 | 
						||
| 
								 | 
							
								get_state            Get tuple representing internal state of generator.
							 | 
						||
| 
								 | 
							
								set_state            Set state of generator.
							 | 
						||
| 
								 | 
							
								==================== =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								"""
							 | 
						||
| 
								 | 
							
								__all__ = [
							 | 
						||
| 
								 | 
							
								    'beta',
							 | 
						||
| 
								 | 
							
								    'binomial',
							 | 
						||
| 
								 | 
							
								    'bytes',
							 | 
						||
| 
								 | 
							
								    'chisquare',
							 | 
						||
| 
								 | 
							
								    'choice',
							 | 
						||
| 
								 | 
							
								    'dirichlet',
							 | 
						||
| 
								 | 
							
								    'exponential',
							 | 
						||
| 
								 | 
							
								    'f',
							 | 
						||
| 
								 | 
							
								    'gamma',
							 | 
						||
| 
								 | 
							
								    'geometric',
							 | 
						||
| 
								 | 
							
								    'get_state',
							 | 
						||
| 
								 | 
							
								    'gumbel',
							 | 
						||
| 
								 | 
							
								    'hypergeometric',
							 | 
						||
| 
								 | 
							
								    'laplace',
							 | 
						||
| 
								 | 
							
								    'logistic',
							 | 
						||
| 
								 | 
							
								    'lognormal',
							 | 
						||
| 
								 | 
							
								    'logseries',
							 | 
						||
| 
								 | 
							
								    'multinomial',
							 | 
						||
| 
								 | 
							
								    'multivariate_normal',
							 | 
						||
| 
								 | 
							
								    'negative_binomial',
							 | 
						||
| 
								 | 
							
								    'noncentral_chisquare',
							 | 
						||
| 
								 | 
							
								    'noncentral_f',
							 | 
						||
| 
								 | 
							
								    'normal',
							 | 
						||
| 
								 | 
							
								    'pareto',
							 | 
						||
| 
								 | 
							
								    'permutation',
							 | 
						||
| 
								 | 
							
								    'poisson',
							 | 
						||
| 
								 | 
							
								    'power',
							 | 
						||
| 
								 | 
							
								    'rand',
							 | 
						||
| 
								 | 
							
								    'randint',
							 | 
						||
| 
								 | 
							
								    'randn',
							 | 
						||
| 
								 | 
							
								    'random',
							 | 
						||
| 
								 | 
							
								    'random_integers',
							 | 
						||
| 
								 | 
							
								    'random_sample',
							 | 
						||
| 
								 | 
							
								    'ranf',
							 | 
						||
| 
								 | 
							
								    'rayleigh',
							 | 
						||
| 
								 | 
							
								    'sample',
							 | 
						||
| 
								 | 
							
								    'seed',
							 | 
						||
| 
								 | 
							
								    'set_state',
							 | 
						||
| 
								 | 
							
								    'shuffle',
							 | 
						||
| 
								 | 
							
								    'standard_cauchy',
							 | 
						||
| 
								 | 
							
								    'standard_exponential',
							 | 
						||
| 
								 | 
							
								    'standard_gamma',
							 | 
						||
| 
								 | 
							
								    'standard_normal',
							 | 
						||
| 
								 | 
							
								    'standard_t',
							 | 
						||
| 
								 | 
							
								    'triangular',
							 | 
						||
| 
								 | 
							
								    'uniform',
							 | 
						||
| 
								 | 
							
								    'vonmises',
							 | 
						||
| 
								 | 
							
								    'wald',
							 | 
						||
| 
								 | 
							
								    'weibull',
							 | 
						||
| 
								 | 
							
								    'zipf',
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# add these for module-freeze analysis (like PyInstaller)
							 | 
						||
| 
								 | 
							
								from . import _bounded_integers, _common, _pickle
							 | 
						||
| 
								 | 
							
								from ._generator import Generator, default_rng
							 | 
						||
| 
								 | 
							
								from ._mt19937 import MT19937
							 | 
						||
| 
								 | 
							
								from ._pcg64 import PCG64, PCG64DXSM
							 | 
						||
| 
								 | 
							
								from ._philox import Philox
							 | 
						||
| 
								 | 
							
								from ._sfc64 import SFC64
							 | 
						||
| 
								 | 
							
								from .bit_generator import BitGenerator, SeedSequence
							 | 
						||
| 
								 | 
							
								from .mtrand import *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								__all__ += ['Generator', 'RandomState', 'SeedSequence', 'MT19937',
							 | 
						||
| 
								 | 
							
								            'Philox', 'PCG64', 'PCG64DXSM', 'SFC64', 'default_rng',
							 | 
						||
| 
								 | 
							
								            'BitGenerator']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def __RandomState_ctor():
							 | 
						||
| 
								 | 
							
								    """Return a RandomState instance.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    This function exists solely to assist (un)pickling.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Note that the state of the RandomState returned here is irrelevant, as this
							 | 
						||
| 
								 | 
							
								    function's entire purpose is to return a newly allocated RandomState whose
							 | 
						||
| 
								 | 
							
								    state pickle can set.  Consequently the RandomState returned by this function
							 | 
						||
| 
								 | 
							
								    is a freshly allocated copy with a seed=0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    See https://github.com/numpy/numpy/issues/4763 for a detailed discussion
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								    return RandomState(seed=0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from numpy._pytesttester import PytestTester
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test = PytestTester(__name__)
							 | 
						||
| 
								 | 
							
								del PytestTester
							 |