Spaces:
Running
Running
| # Copyright (c) Microsoft Corporation. | |
| # Licensed under the MIT license. | |
| ''' | |
| parameter_expression.py | |
| ''' | |
| import numpy as np | |
| def choice(options, random_state): | |
| ''' | |
| options: 1-D array-like or int | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return random_state.choice(options) | |
| def randint(lower, upper, random_state): | |
| ''' | |
| Generate a random integer from `lower` (inclusive) to `upper` (exclusive). | |
| lower: an int that represent an lower bound | |
| upper: an int that represent an upper bound | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return random_state.randint(lower, upper) | |
| def uniform(low, high, random_state): | |
| ''' | |
| low: an float that represent an lower bound | |
| high: an float that represent an upper bound | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| assert high >= low, 'Upper bound must be larger than lower bound' | |
| return random_state.uniform(low, high) | |
| def quniform(low, high, q, random_state): | |
| ''' | |
| low: an float that represent an lower bound | |
| high: an float that represent an upper bound | |
| q: sample step | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return np.clip(np.round(uniform(low, high, random_state) / q) * q, low, high) | |
| def loguniform(low, high, random_state): | |
| ''' | |
| low: an float that represent an lower bound | |
| high: an float that represent an upper bound | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| assert low > 0, 'Lower bound must be positive' | |
| return np.exp(uniform(np.log(low), np.log(high), random_state)) | |
| def qloguniform(low, high, q, random_state): | |
| ''' | |
| low: an float that represent an lower bound | |
| high: an float that represent an upper bound | |
| q: sample step | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return np.clip(np.round(loguniform(low, high, random_state) / q) * q, low, high) | |
| def normal(mu, sigma, random_state): | |
| ''' | |
| The probability density function of the normal distribution, | |
| first derived by De Moivre and 200 years later by both Gauss and Laplace independently. | |
| mu: float or array_like of floats | |
| Mean (“centre”) of the distribution. | |
| sigma: float or array_like of floats | |
| Standard deviation (spread or “width”) of the distribution. | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return random_state.normal(mu, sigma) | |
| def qnormal(mu, sigma, q, random_state): | |
| ''' | |
| mu: float or array_like of floats | |
| sigma: float or array_like of floats | |
| q: sample step | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return np.round(normal(mu, sigma, random_state) / q) * q | |
| def lognormal(mu, sigma, random_state): | |
| ''' | |
| mu: float or array_like of floats | |
| sigma: float or array_like of floats | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return np.exp(normal(mu, sigma, random_state)) | |
| def qlognormal(mu, sigma, q, random_state): | |
| ''' | |
| mu: float or array_like of floats | |
| sigma: float or array_like of floats | |
| q: sample step | |
| random_state: an object of numpy.random.RandomState | |
| ''' | |
| return np.round(lognormal(mu, sigma, random_state) / q) * q | |