dpnp icon indicating copy to clipboard operation
dpnp copied to clipboard

Random module

Open shssf opened this issue 5 years ago • 1 comments

Need to implement random module in the project. Currently, it implemented in Python. Need to implement it in Cython and cover following functionality https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.random.html

Simple random data

  • [x] rand(d0, d1, ..., dn) Random values in a given shape.
  • [x] randn(d0, d1, ..., dn) Return a sample (or samples) from the “standard normal” distribution.
  • [x] randint(low[, high, size, dtype]) Return random integers from low (inclusive) to high (exclusive).
  • [x] random_integers(low[, high, size]) Random integers of type np.int between low and high, inclusive.
  • [x] random_sample([size]) Return random floats in the half-open interval [0.0, 1.0).
  • [x] random([size]) Return random floats in the half-open interval [0.0, 1.0).
  • [x] ranf([size]) Return random floats in the half-open interval [0.0, 1.0).
  • [x] sample([size]) Return random floats in the half-open interval [0.0, 1.0).
  • [x] choice(a[, size, replace, p]) Generates a random sample from a given 1-D array
  • [x] bytes(length) Return random bytes.

Permutations

  • [x] shuffle(x) Modify a sequence in-place by shuffling its contents.
  • [x] permutation(x) Randomly permute a sequence, or return a permuted range.

Distributions

  • [x] beta(a, b[, size]) Draw samples from a Beta distribution.
  • [x] binomial(n, p[, size]) Draw samples from a binomial distribution.
  • [x] chisquare(df[, size]) Draw samples from a chi-square distribution.
  • [x] dirichlet(alpha[, size]) Draw samples from the Dirichlet distribution.
  • [x] exponential([scale, size]) Draw samples from an exponential distribution.
  • [x] f(dfnum, dfden[, size]) Draw samples from an F distribution.
  • [x] gamma(shape[, scale, size]) Draw samples from a Gamma distribution.
  • [x] geometric(p[, size]) Draw samples from the geometric distribution.
  • [x] gumbel([loc, scale, size]) Draw samples from a Gumbel distribution.
  • [x] hypergeometric(ngood, nbad, nsample[, size]) Draw samples from a Hypergeometric distribution.
  • [x] laplace([loc, scale, size]) Draw samples from the Laplace or double exponential distribution with specified location (or mean) and scale (decay).
  • [x] logistic([loc, scale, size]) Draw samples from a logistic distribution.
  • [x] lognormal([mean, sigma, size]) Draw samples from a log-normal distribution.
  • [x] logseries(p[, size]) Draw samples from a logarithmic series distribution.
  • [x] multinomial(n, pvals[, size]) Draw samples from a multinomial distribution.
  • [x] multivariate_normal(mean, cov[, size, ...) Draw random samples from a multivariate normal distribution.
  • [x] negative_binomial(n, p[, size]) Draw samples from a negative binomial distribution.
  • [x] noncentral_chisquare(df, nonc[, size]) Draw samples from a noncentral chi-square distribution.
  • [x] noncentral_f(dfnum, dfden, nonc[, size]) Draw samples from the noncentral F distribution.
  • [x] normal([loc, scale, size]) Draw random samples from a normal (Gaussian) distribution.
  • [x] pareto(a[, size]) Draw samples from a Pareto II or Lomax distribution with specified shape.
  • [x] poisson([lam, size]) Draw samples from a Poisson distribution.
  • [x] power(a[, size]) Draws samples in [0, 1] from a power distribution with positive exponent a - 1.
  • [x] rayleigh([scale, size]) Draw samples from a Rayleigh distribution.
  • [x] standard_cauchy([size]) Draw samples from a standard Cauchy distribution with mode = 0.
  • [x] standard_exponential([size]) Draw samples from the standard exponential distribution.
  • [x] standard_gamma(shape[, size]) Draw samples from a standard Gamma distribution.
  • [x] standard_normal([size]) Draw samples from a standard Normal distribution (mean=0, stdev=1).
  • [x] standard_t(df[, size]) Draw samples from a standard Student’s t distribution with df degrees of freedom.
  • [x] triangular(left, mode, right[, size]) Draw samples from the triangular distribution over the interval [left, right].
  • [x] uniform([low, high, size]) Draw samples from a uniform distribution.
  • [x] vonmises(mu, kappa[, size]) Draw samples from a von Mises distribution.
  • [x] wald(mean, scale[, size]) Draw samples from a Wald, or inverse Gaussian, distribution.
  • [x] weibull(a[, size]) Draw samples from a Weibull distribution.
  • [x] zipf(a[, size]) Draw samples from a Zipf distribution.

Random generator

  • [ ] RandomState Container for the Mersenne Twister pseudo-random number generator.
  • [x] seed([seed]) Seed the generator.
  • [ ] get_state() Return a tuple representing the internal state of the generator.
  • [ ] set_state(state) Set the internal state of the generator from a tuple.

shssf avatar Sep 29 '20 20:09 shssf

@shssf most of these features implemented for python level as well as for the backend. Do we need update this issue or just close it?

samir-nasibli avatar Feb 20 '21 15:02 samir-nasibli