Python数据科学|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)))

【Python数据科学|Numpy简易教程2——创建随机数数组】结果为:
生成的随机数组为: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.58047090.97197456 0.63421724 0.64432133 0.03697043] [0.97348562 0.01799491 0.99825668 0.10233273 0.55043191] [0.70151956 0.51284018 0.20162380.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.5984840.46529771 0.30162018] [0.51269246 0.62850629 0.16219104 0.15306988 0.4664314 ] [0.36235548 0.93563423 0.32295930.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.621839260.69450445 -0.46215443] [-1.43031877 -1.157072930.95024971 -0.97172887 -0.00521778] [-0.427618850.89326249 -1.42080774 -0.169362340.28452475] [-0.298005840.560171630.579950820.10571659 -0.66880545] [ 0.050094251.474250880.138932550.32171053 -1.30117759] [ 0.048558850.248916270.1961776-0.506400930.77361007] [-1.07036266 -0.763790550.14062730.306997610.58440356] [ 1.056988171.151765420.847522120.98985422 -1.50556324] [-1.627277760.18529418 -0.563647781.081664261.75008011] [ 0.813123211.028362851.354208980.320634110.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]]

    推荐阅读