博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numpy的random模块
阅读量:6233 次
发布时间:2019-06-22

本文共 6794 字,大约阅读时间需要 22 分钟。

【说明】

翻译自官网的文档。

 

随机抽样 (numpy.random)

简单的随机数据

(d0, d1, ..., dn)

随机值

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

(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) + 3array([[-4.49401501,  4.00950034, -1.81814867,  7.29718677],  #random       [ 0.39924804,  4.68456316,  4.99394529,  4.84057254]]) #random

(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]])

(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))
>>> 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()

 

([size])

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

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

(b - a) * random_sample() + a

Examples

>>> np.random.random_sample()0.47108547995356098>>> type(np.random.random_sample())
>>> 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)) - 5array([[-3.99149989, -0.52338984],       [-2.99091858, -0.79479508],       [-1.23204345, -1.75224494]])

 

([size])

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

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

([size])

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

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

([size])

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

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

(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')

 

(length)

返回随机字节。

>>> np.random.bytes(10)' eh\x85\x022SZ\xbf\xa4' #random

 

排列

(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)>>> arrarray([[3, 4, 5],       [6, 7, 8],       [0, 1, 2]])

 

(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]])

 

分布

(a, b[, size])

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

(n, p[, size])

二项分布的样本。

(df[, size])

卡方分布样本。

(alpha[, size])

狄利克雷分布样本。

([scale, size])

指数分布

(dfnum, dfden[, size])

F分布样本。

(shape[, scale, size])

伽马分布

(p[, size])

几何分布

([loc, scale, size])

耿贝尔分布。

(ngood, nbad, nsample[, size])

超几何分布样本。

([loc, scale, size])

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

([loc, scale, size])

Logistic分布样本

([mean, sigma, size])

对数正态分布

(p[, size])

对数级数分布。

(n, pvals[, size])

多项分布

(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()

 

(n, p[, size])

负二项分布

(df, nonc[, size])

非中心卡方分布

(dfnum, dfden, nonc[, size])

非中心F分布

([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 ).

 

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.01True>>> abs(sigma - np.std(s, ddof=1)) < 0.01True

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()

 

(a[, size])

帕累托(Lomax)分布

([lam, size])

泊松分布

(a[, size])

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

([scale, size])

Rayleigh 分布

([size])

标准柯西分布

([size])

标准的指数分布

(shape[, size])

标准伽马分布

([size])

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

(df[, size])

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

(left, mode, right[, size])

三角形分布

([low, high, size])

均匀分布

(mu, kappa[, size])

von Mises分布

(mean, scale[, size])

瓦尔德(逆高斯)分布

(a[, size])

Weibull 分布

(a[, size])

齐普夫分布

随机数生成器

Container for the Mersenne Twister pseudo-random number generator.

([seed])

Seed the generator.

()

Return a tuple representing the internal state of the generator.

(state)

Set the internal state of the generator from a tuple.
本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/4324967.html
,如需转载请自行联系原作者
你可能感兴趣的文章
一秒搭建gitbook
查看>>
react 与 Vue的一些比较
查看>>
vue-cli3环境变量与分环境打包
查看>>
前端爬坑之旅--echarts渲染时canvas变为100px
查看>>
C#中的Singleton模式
查看>>
git 常用命令
查看>>
在Windows下,用Hexo搭建博客
查看>>
Element组件引发的Vue中mixins使用,写出高复用组件
查看>>
【Linux系统编程】普通用户绑定(bind)特权端口
查看>>
Django搭建个人博客:文章标签功能
查看>>
63. Unique Paths II
查看>>
989-数组形式的整数加法
查看>>
Redis 源码分析之故障转移
查看>>
React as a UI Runtime(四、条件)
查看>>
阿里云MWC 2019发布7款重磅产品,助力全球企业迈向智能化
查看>>
使用Logtail采集Kubernetes上挂载的NAS日志
查看>>
电脑录音软件哪个好,怎么用电脑录音
查看>>
《前端十年-我将一切告诉你》人物关系图
查看>>
angular js中的依赖注入是什么?
查看>>
聊聊 Array 中的坑
查看>>