一、前言
python的random功能是我们常常需要用到的,除了python中random模块之外,numpy模块中也有random子模块,相比较之下,np.random有更多的函数支持。
二、np.random中的方法
1.给出单个随机数
1.1给出一个范围是[0.0,1.0),服从均匀分布,浮点型的随机数
print(np.random.random())
print(np.random.rand())
1.2给出一个指定范围[low,high),服从均匀分布,浮点型的随机数
print(np.random.uniform(low=0.0,high=10.0)) #此函数中low默认为0.0,high默认为1.0
1.3给出一个指定范围[low,high), 服从离散均匀分布,整数类型的随机数
print(np.random.randint(low=1,high=100)) #此函数中必须指定low
1.4给出一个服从mu=0,sigma=1 的标准正态分布,浮点型的随机数
print(np.random.randn()) # n是normal的意思
2.给出多个随机数
2.1指定形状,范围是[0.0,1.0),服从均匀分布,浮点型的随机数
print(np.random.random(size=(5,5)))
print(np.random.rand(5,5))
2.2 指定形状,指定范围,服从均匀分布,浮点型的随机数
# 如果low,high都赋值,范围是[low,high) if high > low else [high, low)
# low默认为0.0,hight默认为1.0
print(np.random.uniform(low=1.0,high=10.0,size=(5,5)))
2.3指定形状,指定范围,服从离散均匀分布,整数类型的随机数
# 如果low,high都赋值,范围是[low,high)
# 如果只指定low, 范围是[0,low),low不能为负数
# low必须指定,high默认为None
print(np.random.randint(low=1,high=10,size=(5,5)))
2.4指定形状,mu=0,sigma=1 的标准正态分布,浮点型的随机数
print(np.random.randn(5,5)) # n是normal的意思
print(2.5*np.random.randn(5,5)+2) #生成mu=2,sigma=2.5的随机数
三、random模块中相对应的方法
自带random模块方法比较少,只能生成单个随机数
import random
# 生成随机浮点数,取值范围[0,1)
print(random.random())
#范围是[1,3]
print(random.randint(1,3))
# 给出一个服从mu=0,sigma=1 的标准正态分布,浮点型的随机数
print(random.normalvariate(0,1))