使用numpy产生随机数

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

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

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

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

输出:

[[0.26054323 0.28184468]
 [0.7783674  0.71733674]
 [0.90302256 0.49303252]]
0.6022098740124009

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)
# 不提供size
b = np.random.uniform(1, 10)
print(b)

输出:

[[5.16545387 6.3769087 ]
 [9.98964899 7.88833885]
 [1.37173855 4.19855075]]
3.899250175275188

3、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)
# 不提供形状
b = np.random.randn()
print(b)

输出:

[[-1.46605527  0.35434705]
 [ 0.43408199  0.02689309]
 [ 0.48041554  1.62665755]]
-0.6291254375915813

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

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

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

输出:

[[ 0.34912031 -0.08757564]
 [-0.99753101  0.37441719]
 [ 2.68072286 -1.03663963]]
5.770831320998463

5、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)
# 不提供size
b = np.random.randint(1, 10)
print(b)
# 指定dtype
c = np.random.randint(1, 10, dtype=np.int64)
print(c)
type(c)

输出:

[[3 1]
 [3 3]
 [5 8]]
6
2
numpy.int64

6、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)
# 不指定size
b = np.random.random()
print(b)

输出:

[[0.80136714 0.63129059]
 [0.04556679 0.04433006]
 [0.09643599 0.53312761]]
0.32828505898057136

使用numpy产生随机数的更多方法可以参考官方文档

posted @ 2018-09-21 12:10  ColdCode  阅读(48448)  评论(1编辑  收藏  举报
AmazingCounters.com