[转载] python的numpy.random详细解析

参考链接: Python中的numpy.float_power

随机抽样 (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)

‘ eh\x85\x022SZ\xbf\xa4‘ #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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值