numpy产生随机数的常用方法总结

前言

numpy中的random模块包含了很多方法可以用来产生随机数,这篇文章将对random中的一些常用方法(rand,uniform,choice,randn,normal,randint,random)做一个总结。

1、numpy.random.rand(d0, d1, …, dn)

作用: 产生一个给定形状的数组(其实应该是ndarray对象或者是一个单值),数组中的值服从[0, 1)之间的均匀分布。
参数: d0, d1, …, dn : int,可选。如果没有参数则返回一个float型的随机数,该随机数服从[0, 1)之间的均匀分布。
返回值: ndarray对象或者一个float型的值。

例子:

# [0, 1)之间均匀分布的随机数,3行2列
a = np.random.rand(3, 2)
print(a)

[[0.68404321 0.24719641]
 [0.22776829 0.09530496]
 [0.17033399 0.298983  ]]
 
# 不提供形状
b = np.random.rand()
print(b)

0.45868104780087227

2、numpy.random.uniform(low=0.0, high=1.0, size=None)

作用: 返回一个在区间[low, high)中均匀分布的数组,size指定形状。
参数: low, high: float型或者float型的类数组对象。指定抽样区间为[low, high),low的默认值为0.0,hign的默认值为1.0。size: int型或int型元组。指定形状,如果不提供size,则返回一个服从该分布的随机数。

例子:

# 在[1, 10)之间均匀抽样,数组形状为3行2列
a = np.random.uniform(1, 10, (3, 2))
print(a)

[[1.7694207  5.88663933]
 [9.31000261 2.53414533]
 [9.61062395 6.63295188]]
 
# 不提供size
b = np.random.uniform(1, 10)
print(b)

9.955240734279203

3、numpy.random.choice(a, size=None, replace=True, p=None)

作用: 从给定的一维数组中生成一个随机样本。
参数:
a: 1维数组或int。如果是ndarray,则从其元素中生成一个随机样本。如果是一个int型,则生成的随机样本就 np.arange(a)。
size: int型或者int型的元组,指定了数组的形状。如果不提供size,在这种情况下将返回单个值。
replace: 布尔值,可选。样品是否有更换
p: 一维数组类,可选。与a中每个条目相关的概率。如果没有给出,样本假设a中所有条目的均匀分布。
返回值: 返回随机项。

例子:

a = np.random.choice([1, 3, 5, 7, 9])

7
# 3行2列
b = np.random.choice([1, 3, 5, 7, 9], size=(3, 2))

[[9 9]
 [3 1]
 [7 3]]

c = np.random.choice(5, 3)
print(c)

[1, 3, 0]

d = np.random.choice(['pooh', 'rabbit', 'piglet', 'Christopher'], 3)
print(d)

['pooh', 'piglet', 'piglet']

4、numpy.random.randn(d0, d1, …, dn)

作用: 返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。
参数: d0, d, …, dn : int,可选。如果没有参数,则返回一个服从标准正态分布的float型随机数。
返回值: ndarray对象或者float。

例子:

# 3行2列
a = np.random.randn(3, 2)
print(a)

[[ 1.00181973 -1.07178946]
 [ 1.11540023  0.72727269]
 [ 0.60507162 -1.91591898]]
 
# 不提供形状
b = np.random.randn()
print(b)

0.7548234170541415

5、numpy.random.normal(loc=0.0, scale=1.0, size=None)

作用: 返回一个由size指定形状的数组,数组中的值服从 μ=loc,σ=scale 的正态分布。
参数:
loc : float型或者float型的类数组对象,指定均值 μ。
scale : float型或者float型的类数组对象,指定标准差 σ。
size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。
输出: ndarray对象或者一个标量。

例子:

# 标准正态分布,3行2列
a = np.random.normal(0, 1, (3, 2))
print(a)

[[-1.3681416   0.37001618]
 [-2.31948008 -0.02200573]
 [ 0.53075733 -0.54062915]]
 
# 均值为1,标准差为3
b = np.random.normal(1, 3)
print(b)

0.6820592188367113

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

作用: 返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。
参数:
low, high: int型,指定抽样区间[low, high)。
size: int型或int型的元组,指定形状。
dypte: 可选参数,指定数据类型,比如int,int64等,默认是np.int。
返回值: 如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。

例子:

# 在[1, 10)之间离散均匀抽样,数组形状为3行2列
a = np.random.randint(1, 10, (3, 2))
print(a)

[[7 8]
 [7 9]
 [7 1]]
 
# 不提供size
b = np.random.randint(1, 10)
print(b)

2

# 指定dtype
c = np.random.randint(1, 10, dtype=np.int64)
print(c)
type(c)

9
numpy.int64

7、numpy.random.random(size=None)

作用: 返回从[0, 1)之间均匀抽样的数组,size指定形状。
参数:
size: int型或int型的元组,如果不提供则返回一个服从该分布的随机数
返回值: float型或者float型的ndarray对象

例子:

# [0, 1)之间的均匀抽样,3行2列
a = np.random.random((3, 2))
print(a)

[[0.7354624  0.90383045]
 [0.4802905  0.95329523]
 [0.97926236 0.68619852]]

# 不指定size
b = np.random.random()
print(b)

0.3137975773538786
  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值