numpy.random模块中,有很多可以生成随机数的函数。
在此,对以下的内容进行说明:
以上内容,使用代码进行说明。
numpy.random.rand()返回一组0.0到1.0之间的随机数。
import numpy as np
rand = np.random.rand() # 1个随机数
print(rand)
# 0.5399711080561779
arr = np.random.rand(3) # 长度为3的随机数数组
print(arr)
# [ 0.22393312 0.56723404 0.41167989]
arr = np.random.rand(4, 4) # 4 x 4的随机数数组
print(arr)
# [[ 0.98109413 0.43272792 0.78808567 0.14697466]
# [ 0.14529422 0.66417579 0.62020433 0.39887021]
# [ 0.78762131 0.3616854 0.76995665 0.25530529]
# [ 0.59426681 0.64130992 0.41451061 0.2356074 ]]
arr = np.random.rand(3, 2, 2) # 3 x 2 x 2的随机数数组
print(arr)
# [[[ 0.26072665 0.63424568]
# [ 0.43025675 0.88787556]]
#
# [[ 0.58189813 0.57733422]
# [ 0.4312518 0.12558879]]
#
# [[ 0.58588003 0.58290714]
# [ 0.58133023 0.05894161]]]
numpy.random.random_sample()和np.random.rand()相同,返回一组0.0到1.0之间的随机数。不同的是指定参数的类型。
numpy.random.random_sample()的参数类型为tuple(元组)。
rand = np.random.random_sample() # 1个随机数
print(rand)
# 0.7812294650415362
arr = np.random.random_sample(3) # 长度为3的随机数数组
print(arr)
# [ 0.31315625 0.75406842 0.51955327]
arr = np.random.random_sample((4, 4)) # 4 x 4的随机数数组
print(arr)
# [[ 0.17710988 0.63316992 0.00101942 0.94233375]
# [ 0.9439738 0.58700846 0.97807038 0.56899597]
# [ 0.62050185 0.23601975 0.57513176 0.56947325]
# [ 0.64393715 0.92796497 0.83784537 0.1544701 ]]
arr = np.random.random_sample((3, 2, 2)) # 3 x 2 x 2的随机数数组
print(arr)
# [[[ 0.26624554 0.33096779]
# [ 0.1814989 0.12867246]]
#
# [[ 0.1435755 0.45274324]
# [ 0.12867198 0.98908694]]
#
# [[ 0.86989893 0.67003622]
# [ 0.17530006 0.03146698]]]
print(np.random.random_sample is np.random.random)
# True
其他:
上述函数的函数名虽然不同,但功能完全相同。
np.random.randint()返回一组任意值范围的整数随机数。
参数的指定顺序为最小值,最大值,尺寸,类型。
arr = np.random.randint(4, 10, (3, 3)) # 4到10的3 x 3的随机整数数组
print(arr)
# [[9 5 6]
# [4 8 9]
# [9 8 5]]
np.random.randn()返回一组平均为0,标准差为1,服从正态分布的随机数。
arr = np.random.randn(3, 3)
print(arr)
# [[-0.25630308 0.86118703 0.7163906 ]
# [-0.63096426 -2.09983061 1.28259567]
# [ 1.45971205 0.2939326 0.64207751]]
numpy.random.normal()返回一组平均为loc,标准差为scale,服从正态分布的随机数。
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数size的类型为tuple(元组)
arr = np.random.normal(-2, 0.5, (3, 3))
print(arr)
# [[-2.40461812 -2.76365861 -1.70312821]
# [-2.29453302 -1.53210319 -1.49669024]
# [-1.90580765 -1.45375908 -2.44137036]]
numpy.random.binomial()返回一组服从参数n,p的二项式随机数。
参数size的类型为tuple(元组)
arr = np.random.binomial(10, 0.5, 10)
print(arr)
# [7 4 7 5 7 8 5 5 3 4]
numpy.random.beta()返回一组服从参数a,b的Beta分布的随机数。
参数size的类型为tuple(元组)
arr = np.random.beta(2, 2, 10)
print(arr)
# [ 0.36516508 0.86746749 0.54430968 0.31152791 0.57359928 0.48281988
# 0.70518635 0.57312808 0.09019818 0.87831173]
numpy.random.gamma()返回一组服从参数shape,比例scale的Gamma分布的随机数。
参数size的类型为tuple(元组)
arr = np.random.gamma(5, 1, 10)
print(arr)
# [ 3.86630062 1.69144819 3.07071675 3.14181626 3.61405871 8.37772201
# 5.47063142 4.80523142 3.68531649 4.43143731]
numpy.random.chisquare()返回一组服从自由度df的卡方分布的随机数。
参数size的类型为tuple(元组)
arr = np.random.chisquare(3, 10)
print(arr)
# [ 0.49617849 2.39966829 2.84359974 3.5340327 0.71761612 2.04619564
# 0.35930769 4.00448281 1.2907048 2.99259386]