Numpy简易教程2——创建随机数数组

创建随机数数组

NumPy提供了强大的生成随机数的功能。真正的随机数很难获得,实际中使用的都是伪随机数。大部分情况下,伪随机数就能满足需求。当然,某些特殊情况除外,如进行高精度的模拟实验。

对于NumPy,与随机数相关的函数都在random模块中,其中包括了可以生成服从多种概率分布随机数的函数。

1. random函数

random函数是最常见的生成随机数的方法,用于在区间[0,1)中生成均匀分布的随机数或随机数数组。

函数格式为random(size=None)size参数可选,即结果数组的形状元组,默认值为None,生成一个[0,1)之间的随机浮点数。

# 结果为一维数组
print('生成的随机数组为:',np.random.random(10))
生成的随机数组为:array([0.78283652, 0.9154314 , 0.41306707, 0.77055199, 0.16990905,
       0.07928419, 0.17580154, 0.5834303 , 0.52031781, 0.98319803])
# 结果为二维数组
print('生成的随机数组为:',np.random.random((2,5)))

结果为:

生成的随机数组为:array([[0.97113777, 0.50128748, 0.76695156, 0.85181191, 0.25288016],
       [0.60372028, 0.67677372, 0.91640817, 0.61216549, 0.23824247]])

2. rand函数

rand函数在区间[0,1)中生成服从均匀分布的随机数或随机数数组。

函数格式为rand(d0, d1, ..., dn),参数可选,即结果数组的形状,每个维度占据一个参数位置。如果没有参数则生成一个[0,1)之间的随机浮点数。

print('生成的随机数为:\n',np.random.rand())
生成的随机数为:
 0.7217603302000459
print('生成的随机数组为:\n',np.random.rand(1))
生成的随机数组为:
 [0.19385678]
print('生成的随机数组为:\n',np.random.rand(10,5))
生成的随机数组为:
 [[0.49840862 0.03578359 0.00181009 0.67397351 0.78615651]
 [0.5804709  0.97197456 0.63421724 0.64432133 0.03697043]
 [0.97348562 0.01799491 0.99825668 0.10233273 0.55043191]
 [0.70151956 0.51284018 0.2016238  0.60990257 0.56710229]
 [0.64986193 0.82797604 0.91317567 0.34350347 0.9934578 ]
 [0.14026724 0.19500193 0.39243871 0.49482824 0.81348489]
 [0.01888658 0.28372039 0.598484   0.46529771 0.30162018]
 [0.51269246 0.62850629 0.16219104 0.15306988 0.4664314 ]
 [0.36235548 0.93563423 0.3229593  0.79106824 0.52974968]
 [0.97405183 0.92076197 0.63987763 0.62506821 0.17320877]]

3. randn函数

randn函数可以生成服从正态分布的随机数或随机数数组。标准正态分布俗称高斯分布,正态分布是大自然中最常见的分布,标准正态分布就是期望为0,方差为1的正态分布。

函数格式为rand(d0, d1, ..., dn)

如果没有参数,则返回一个值,如果有参数,则返回(d0, d1, …, dn)个值,这些值都是从标准正态分布中随机取样得到的。

参数:

  • d0, d1, …, dn:应该为正整数,表示维度。

返回值

  • Z:ndarray或者float。
# 结果为随机数
print('生成的随机数为:\n',np.random.randn())
生成的随机数为:
 0.099700533892262
# 结果为一维数组
print('生成的随机数组为:\n',np.random.randn(1))
生成的随机数组为:
 [-0.4034816]
# 结果为二维数组
print('生成的随机数组为:\n',np.random.randn(10,5))
生成的随机数组为:
 [[-0.92244038 -0.14297778 -1.62183926  0.69450445 -0.46215443]
 [-1.43031877 -1.15707293  0.95024971 -0.97172887 -0.00521778]
 [-0.42761885  0.89326249 -1.42080774 -0.16936234  0.28452475]
 [-0.29800584  0.56017163  0.57995082  0.10571659 -0.66880545]
 [ 0.05009425  1.47425088  0.13893255  0.32171053 -1.30117759]
 [ 0.04855885  0.24891627  0.1961776  -0.50640093  0.77361007]
 [-1.07036266 -0.76379055  0.1406273   0.30699761  0.58440356]
 [ 1.05698817  1.15176542  0.84752212  0.98985422 -1.50556324]
 [-1.62727776  0.18529418 -0.56364778  1.08166426  1.75008011]
 [ 0.81312321  1.02836285  1.35420898  0.32063411  0.38178463]]

4. randint函数

randint函数可以生成给定上下限范围的随机数。

函数格式为randint(low, high=None, size=None, dtype=int)

其中,参数low为最小值,high为最大值,size为数组维度,dtype为数据类型,默认的数据类型是np.int。倘若high没有填写,默认生成随机数的范围就是[0,low)size是可选项,如果不设置,则仅生成一个随机整数,如果想生成多个随机整数,则需要用一个元组来指定随机整数数组的维度信息。

返回的随机整数范围为[low,high),包含low,不包含high

print('生成的随机数组为:',np.random.randint(2,10,size = [2,5]))
生成的随机数组为: [[4 5 4 9 8]
 [2 7 2 3 2]]

猜你喜欢

转载自blog.csdn.net/mighty13/article/details/119548103