numpy 随机数使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy 随机数使用相关的知识,希望对你有一定的参考价值。

参考技术A

有两个额外的方法, any 和 all ,对布尔数组尤其有用。 any 用来测试一个数组中是否有一个或更多的 True ,而 all用来测试所有的值是否为 True

通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1)

参数可以一个或两个 ,具体看实例

(1)通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
(2) np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间,当然也不排除存在较大值的情形,只是概率较小而已

numpy.random.randint(low, high=None, size=None,
dtype=’l’)

low—–为最小值
high—-为最大值
size—–为数组维度大小
dtype—为数据类型,默认的数据类型是np.int。

随机整数或整型数组,范围区间为[low,high),包含low,不包含high;
high没有填写时,默认生成随机数的范围是[0,low)

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

生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low]

seed( )是拿来确定随机数生成的,如果使用相同的seed( )值,则每次生成的随机数相同

我们可以得出结论:
输出相同。即seed(2)中的随机数是确定的、按顺序生成的。 不使用seed,则每次运行的结果都不同

查看numpy 的一些属性

显示图像

将上面图片上下翻转

左右翻转

上下左右翻转

rgb颜色翻转

NumPy基础:随机数生成

import numpy as np

# 确定随机数生成器的种子
# seed()用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed值,则每次生成的随即数都相同
np.random.seed(3)
print(np.random.rand(4)) # [0.5507979  0.70814782 0.29090474 0.51082761]
print(np.random.rand(4)) # 没有使用seed 随机数不同 [0.89294695 0.89629309 0.12558531 0.20724288]
np.random.seed(3)
print(np.random.rand(4)) # 使用相同的seed 随机数相同 [0.5507979  0.70814782 0.29090474 0.51082761]

# 返回一个序列的随机排列,原序列不变
arr1 = np.array([1,2,3,4,5])
print(np.random.permutation(arr1)) # [2 3 4 1 5]
print(arr1) #[1 2 3 4 5]

# 对一个序列就地随机排列,原序列变化
arr2 = np.array([1,2,3,4,5])
np.random.shuffle(arr2)
print(arr2) #[1 5 3 4 2]

# 产生均匀分布的样本值
print(np.random.rand(2,3))
‘‘‘
[[0.23418466 0.23814386 0.46806856]
 [0.11568982 0.650459   0.2993208 ]]
‘‘‘

# 从给定的上下限范围内随机选取整数
print(np.random.randint(low=1,high=100,size=(2,3)))
‘‘‘
[[ 8 64 27]
 [24 94 60]]
‘‘‘
# 产生生态分布(平均值为0,标准差为1)的样本值
print(np.random.randn(2,3))
‘‘‘
[[ 0.18292511 -0.48627444  0.41030827]
 [ 0.51549312  0.26381845  1.89847068]]
‘‘‘
# 产生二项分布的样本值
print(np.random.binomial(n=100,p=0.5,size=(2,3)))
‘‘‘
[[48 46 50]
 [52 49 44]]
‘‘‘

# 产生正态(高斯)分布的样本值
# 参数loc(float):正态分布的均值,对应着这个分布的中心。loc=0说明这一个以Y轴为对称轴的正态分布
# 参数scale(float):正态分布的标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦。
# 参数size(int 或者整数元组):输出的值赋在shape里,默认为None
print(np.random.normal(loc=0,scale=0.5,size=(2,3)))
‘‘‘
[[ 1.12148353  0.82205912 -0.22225523]
 [ 0.64261443 -0.30223166 -0.69175258]]
‘‘‘

# 产生beta分布的样本值
print(np.random.beta(a=1,b=1,size=(2,3)))
‘‘‘
[[0.5114256  0.57097198 0.78919234]
 [0.64527071 0.27655094 0.44112513]]
‘‘‘

# 产生卡方分布的样本值
# df设定自由度,size设定生成数据的形状
print(np.random.chisquare(df=7,size=(2,3)))
‘‘‘
[[2.56477918 8.54322715 4.38206938]
 [6.23697907 4.32467322 1.81769223]]
‘‘‘

# 产生Gamma分布的样本值
# shape设定分布的形状参数,scale设定分布的尺度参数,size设定生成数据的形状
print(np.random.gamma(shape=1,scale=1,size=(2,3)))
‘‘‘
[[0.49257743 2.59203526 1.8430738 ]
 [0.44222905 0.04457012 0.36350978]]
‘‘‘

# 产生在[low,high)中均匀分布的样本值
# low默认0,high默认1
print(np.random.uniform(low=1,high=10,size=(2,3)))
‘‘‘
[[4.58367114 7.34462947 9.95822634]
 [4.20323379 7.86293032 6.33859225]]
‘‘‘

 

以上是关于numpy 随机数使用的主要内容,如果未能解决你的问题,请参考以下文章

numpy教程:随机数模块numpy.random

比较使用随机数生成的 Matlab 和 Numpy 代码

python 使用numpy在Python中生成随机数

在某个预定义的间隔内使用抽屉绘制随机数,`numpy.random.choice()`

NumPy基础:随机数生成

在numpy中numpy.histogram /随机数的奇怪行为?