Python深度学习之路产生随机数

Posted Vax_Loves_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python深度学习之路产生随机数相关的知识,希望对你有一定的参考价值。

随机数的生成

1.设置种子

计算机是根据被称为“种子(seed)”的数据来生成随机数的。
所谓种子,是指在生成随机数的过程中所使用的初始值,如果种子的值固定不变,生成的随机数序列也是不变的。通过使用相同的随机数序列,在同样的条件下,即使是使用了随机数得到的计算结果也是可重现的。
如果不对种子进行设置,计算机就会使用当前的时间作为种子的初始值,因此每次执行代码都会有输出不同的随机数。
可以通过将种子(整数)传递给 numpy.random.seed() 对种子的数值进行设置。

编程实现:

  1. 设置种子/不设置种子的前后变化比较
import numpy as np

#确认不进行初始设置时产生的随机数是否一致
#分别在X、Y中产生五个随机数
X = np.random.randn(5)
Y = np.random.randn(5)
# 对X、Y的值进行输出
print("X:",X)
print("Y:",Y)

可以通过设置种子(整数)传递给np.random.seed()对其数值进行设置。

# 对种子进行设置
np.random.seed(0)
# 将随机数序列带入变量中
x = np.random.randn(5)
# 将传入相同的种子值进行初始化设置
np.random.seed(0)
# 再次创建随机数序列并将其带入其他的变量中
y = np.random.randn(5)
# 对x、y的值进行输出,并确认是否一致
print("x:",x)
print("y:",y)

2.生成服从正态分布的随机数

对使用np.random.randn生成的随机数进行绘制后,得到的直方图与被称为正态分布的公式的曲线图形状相近。
如果将整数传递给np.random.randn(),就可以返回服从正态分布的随机数传递的数值的数量。

编程实现:

生成10000个服从正态分布的随机数,并将其带入变量x中

将整数传递给np.random.randn(),就可以返回服从正态分布的随机数传递的数值的数量。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 将种子的值设置为0
np.random.seed(0)
# 生成10000个服从正态分布的随机数,并将他们带入变量x中
x = np.random.randn(10000)
#可视化
plt.hist(x,bins='auto')
plt.show()

3.生成服从二项分布的随机数

使用numpy.random.binomial()可以返回某次尝试的结果,无论其结果是成功还是失败。例如,抛硬币时得到的结果只可能是正面或者反面。
此外,无论结果是成功还是失败,其概率都是0.5,如果将整数n和大于0小于1的实数p传递给
numpy.random.binomial()
。程序将对成功率p进行n次实验,并在最后对成功的次数进行返回,如果将“size=整数值”传递给第三个参数,程序将返回所指定数量的n次尝试的成功次数。

程序实现

对在成功概率为0.5的条件下尝试100次得到的成功次数进行10000次的求解,并将结果带入nums中,即计算nums的成功次数及其成功率的平均值。

如果将整数n和大于0小于1的实数p传递给numpy.random.binomial()。程序将对成功率p进行n次实验,并在最后对成功的次数进行返回,如果将“size=整数值”传递给第三个参数,程序将返回所指定数量的n次尝试的成功次数。

import numpy as np
# 将种子值设置为0
np.random.seed(0)
# 对在成功概率为0.5的条件下尝试100次得到的成功次数进行10000次的求解
# 结果存入nums变量
nums = np.random.binomial(100, 0.5, size = 10000)
# 输出成功率的平均值
print(nums.mean()/100)

4.列表数据的随机选择

将列表型数据x与整数值n传递给numpy.random.choice(),可以将列表型数据中随机选择n个元素组成新的列表并返回。

编程实现:

在列表x中随机选择5个元素,并将结果带入变量y中

import numpy as np

x = ['Apple','Orange','Pineapple','Kiwifruit','Strawberry']
# 将种子值设置为0
np.random.seed(0)
# 对列表x中随机选择五个元素,并将结果存入y
y = np.random.choice(x,5)
# 输出y
print(y)

以上是关于Python深度学习之路产生随机数的主要内容,如果未能解决你的问题,请参考以下文章

Python深度学习之路产生随机数

Python之random学习

Python深度学习之路-4 监督学习

Python深度学习之路-4 监督学习

Python深度学习之路-4 监督学习

Python深度学习之路-2.2 过拟合与集成学习