zoukankan      html  css  js  c++  java
  • numpy的random模块详细解析(转帖)

    原链接:https://www.cnblogs.com/zuoshoushizi/p/8727773.html

    随机抽样 (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 技术分享, 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 技术分享):

    >>> 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 技术分享 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

    技术分享

    where 技术分享 is the mean and 技术分享 the standard deviation. The square of the standard deviation, 技术分享, 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 技术分享 and 技术分享 [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.

  • 相关阅读:
    认识Cookie和状态管理
    python之requests库使用问题汇总
    如何掌握所有的程序语言--王垠
    非 GUI 模式运行 JMeter 压力测试
    Python 如何将字符串转为字典
    python之operator操作符函数
    python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel
    《敏捷软件测试:测试人员与敏捷团队的实践指南》
    Jmeter跨线程组传递变量
    Jmeter获取当前时间、历史时间、未来时间的方式
  • 原文地址:https://www.cnblogs.com/sidianok/p/13795270.html
Copyright © 2011-2022 走看看