zoukankan      html  css  js  c++  java
  • numpy的random模块

    【说明】

    翻译自官网的文档。

    随机抽样 (numpy.random)

    简单的随机数据

    rand(d0, d1, ..., dn)

    随机值

    >>> np.random.rand(3,2)
    array([[ 0.14022471,  0.96360618],  #random
           [ 0.37601032,  0.25528411],  #random
           [ 0.49313049,  0.94909878]]) #random

    randn(d0, d1, ..., dn)

    返回一个样本,具有标准正态分布

    Notes

    For random samples from N(mu, sigma^2), use:

    sigma * np.random.randn(...) + mu

    Examples

    >>> np.random.randn()
    2.1923875335537315 #random

    Two-by-four array of samples from N(3, 6.25):

    >>> 2.5 * np.random.randn(2, 4) + 3
    array([[-4.49401501,  4.00950034, -1.81814867,  7.29718677],  #random
           [ 0.39924804,  4.68456316,  4.99394529,  4.84057254]]) #random

    randint(low[, high, size])

    返回随机的整数,位于半开区间 [low, high)。

    >>> np.random.randint(2, size=10)
    array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
    >>> np.random.randint(1, size=10)
    array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

    Generate a 2 x 4 array of ints between 0 and 4, inclusive:

    >>> np.random.randint(5, size=(2, 4))
    array([[4, 0, 2, 1],
           [3, 2, 2, 0]])

    random_integers(low[, high, size])

    返回随机的整数,位于闭区间 [low, high]。

    Notes

    To sample from N evenly spaced floating-point numbers between a and b, use:

    a + (b - a) * (np.random.random_integers(N) - 1) / (N - 1.)

    Examples

    >>> np.random.random_integers(5)
    4
    >>> type(np.random.random_integers(5))
    <type 'int'>
    >>> np.random.random_integers(5, size=(3.,2.))
    array([[5, 4],
           [3, 3],
           [4, 5]])

    Choose five random numbers from the set of five evenly-spaced numbers between 0 and 2.5, inclusive (i.e., from the set {0, 5/8, 10/8, 15/8, 20/8}):

    >>> 2.5 * (np.random.random_integers(5, size=(5,)) - 1) / 4.
    array([ 0.625,  1.25 ,  0.625,  0.625,  2.5  ])

    Roll two six sided dice 1000 times and sum the results:

    >>> d1 = np.random.random_integers(1, 6, 1000)
    >>> d2 = np.random.random_integers(1, 6, 1000)
    >>> dsums = d1 + d2

    Display results as a histogram:

    >>> import matplotlib.pyplot as plt
    >>> count, bins, ignored = plt.hist(dsums, 11, normed=True)
    >>> plt.show()

    random_sample([size])

    返回随机的浮点数,在半开区间 [0.0, 1.0)。

    To sample Unif[a, b), b > a multiply the output of random_sample by (b-a) and add a:

    (b - a) * random_sample() + a

    Examples

    >>> np.random.random_sample()
    0.47108547995356098
    >>> type(np.random.random_sample())
    <type 'float'>
    >>> np.random.random_sample((5,))
    array([ 0.30220482,  0.86820401,  0.1654503 ,  0.11659149,  0.54323428])

    Three-by-two array of random numbers from [-5, 0):

    >>> 5 * np.random.random_sample((3, 2)) - 5
    array([[-3.99149989, -0.52338984],
           [-2.99091858, -0.79479508],
           [-1.23204345, -1.75224494]])

    random([size])

    返回随机的浮点数,在半开区间 [0.0, 1.0)。

    (官网例子与random_sample完全一样)

    ranf([size])

    返回随机的浮点数,在半开区间 [0.0, 1.0)。

    (官网例子与random_sample完全一样)

    sample([size])

    返回随机的浮点数,在半开区间 [0.0, 1.0)。

    (官网例子与random_sample完全一样)

    choice(a[, size, replace, p])

    生成一个随机样本,从一个给定的一维数组

    Examples

    Generate a uniform random sample from np.arange(5) of size 3:

    >>> np.random.choice(5, 3)
    array([0, 3, 4])
    >>> #This is equivalent to np.random.randint(0,5,3)

    Generate a non-uniform random sample from np.arange(5) of size 3:

    >>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
    array([3, 3, 0])

    Generate a uniform random sample from np.arange(5) of size 3 without replacement:

    >>> np.random.choice(5, 3, replace=False)
    array([3,1,0])
    >>> #This is equivalent to np.random.permutation(np.arange(5))[:3]

    Generate a non-uniform random sample from np.arange(5) of size 3 without replacement:

    >>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
    array([2, 3, 0])

    Any of the above can be repeated with an arbitrary array-like instead of just integers. For instance:

    >>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
    >>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
    array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'],
          dtype='|S11')

    bytes(length)

    返回随机字节。

    >>> np.random.bytes(10)
    ' ehx85x022SZxbfxa4' #random

    排列

    shuffle(x)

    现场修改序列,改变自身内容。(类似洗牌,打乱顺序)

    >>> arr = np.arange(10)
    >>> np.random.shuffle(arr)
    >>> arr
    [1 7 5 2 9 4 3 6 0 8]

    This function only shuffles the array along the first index of a multi-dimensional array:

    >>> arr = np.arange(9).reshape((3, 3))
    >>> np.random.shuffle(arr)
    >>> arr
    array([[3, 4, 5],
           [6, 7, 8],
           [0, 1, 2]])

    permutation(x)

    返回一个随机排列

    >>> np.random.permutation(10)
    array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
    >>> np.random.permutation([1, 4, 9, 12, 15])
    array([15,  1,  9,  4, 12])
    >>> arr = np.arange(9).reshape((3, 3))
    >>> np.random.permutation(arr)
    array([[6, 7, 8],
           [0, 1, 2],
           [3, 4, 5]])

    分布

    beta(a, b[, size])

    贝塔分布样本,在 [0, 1]内。

    binomial(n, p[, size])

    二项分布的样本。

    chisquare(df[, size])

    卡方分布样本。

    dirichlet(alpha[, size])

    狄利克雷分布样本。

    exponential([scale, size])

    指数分布

    f(dfnum, dfden[, size])

    F分布样本。

    gamma(shape[, scale, size])

    伽马分布

    geometric(p[, size])

    几何分布

    gumbel([loc, scale, size])

    耿贝尔分布。

    hypergeometric(ngood, nbad, nsample[, size])

    超几何分布样本。

    laplace([loc, scale, size])

    拉普拉斯或双指数分布样本

    logistic([loc, scale, size])

    Logistic分布样本

    lognormal([mean, sigma, size])

    对数正态分布

    logseries(p[, size])

    对数级数分布。

    multinomial(n, pvals[, size])

    多项分布

    multivariate_normal(mean, cov[, size])

    多元正态分布。

    >>> mean = [0,0]
    >>> cov = [[1,0],[0,100]] # diagonal covariance, points lie on x or y-axis
    >>> import matplotlib.pyplot as plt
    >>> x, y = np.random.multivariate_normal(mean, cov, 5000).T
    >>> plt.plot(x, y, 'x'); plt.axis('equal'); plt.show()

    negative_binomial(n, p[, size])

    负二项分布

    noncentral_chisquare(df, nonc[, size])

    非中心卡方分布

    noncentral_f(dfnum, dfden, nonc[, size])

    非中心F分布

    normal([loc, scale, size])

    正态(高斯)分布

    Notes

    The probability density for the Gaussian distribution is

    p(x) = frac{1}{sqrt{ 2 pi sigma^2 }}
e^{ - frac{ (x - mu)^2 } {2 sigma^2} },

    where mu is the mean and sigma the standard deviation. The square of the standard deviation, sigma^2, is called the variance.

    The function has its peak at the mean, and its “spread” increases with the standard deviation (the function reaches 0.607 times its maximum at x + sigma and x - sigma [R217]).

    Examples

    Draw samples from the distribution:

    >>> mu, sigma = 0, 0.1 # mean and standard deviation
    >>> s = np.random.normal(mu, sigma, 1000)

    Verify the mean and the variance:

    >>> abs(mu - np.mean(s)) < 0.01
    True
    >>> abs(sigma - np.std(s, ddof=1)) < 0.01
    True

    Display the histogram of the samples, along with the probability density function:

    >>> import matplotlib.pyplot as plt
    >>> count, bins, ignored = plt.hist(s, 30, normed=True)
    >>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
    ...                np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
    ...          linewidth=2, color='r')
    >>> plt.show()

    pareto(a[, size])

    帕累托(Lomax)分布

    poisson([lam, size])

    泊松分布

    power(a[, size])

    Draws samples in [0, 1] from a power distribution with positive exponent a - 1.

    rayleigh([scale, size])

    Rayleigh 分布

    standard_cauchy([size])

    标准柯西分布

    standard_exponential([size])

    标准的指数分布

    standard_gamma(shape[, size])

    标准伽马分布

    standard_normal([size])

    标准正态分布 (mean=0, stdev=1).

    standard_t(df[, size])

    Standard Student’s t distribution with df degrees of freedom.

    triangular(left, mode, right[, size])

    三角形分布

    uniform([low, high, size])

    均匀分布

    vonmises(mu, kappa[, size])

    von Mises分布

    wald(mean, scale[, size])

    瓦尔德(逆高斯)分布

    weibull(a[, size])

    Weibull 分布

    zipf(a[, size])

    齐普夫分布

    随机数生成器

    RandomState

    Container for the Mersenne Twister pseudo-random number generator.

    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.
  • 相关阅读:
    《编程语言实现模式》读后感3
    编程语言实现模式读后感3
    图表联动
    毕业设计第三周第三天完成情况汇总
    毕业设计第三周第二天完成情况汇总
    毕业设计第三周第一天完成情况汇总
    毕业设计第三周整体规划
    毕业设计第二周第六天完成情况汇总
    毕业设计第二周第五天完成情况汇总
    毕业设计第二周第四天完成情况汇总
  • 原文地址:https://www.cnblogs.com/hhh5460/p/4324967.html
Copyright © 2011-2022 走看看