[Python系列-8]:Python之人工智能 - 基本工具 -2- 随机数生成库
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python系列-8]:Python之人工智能 - 基本工具 -2- 随机数生成库相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing
本文网址:https://mp.csdn.net/mp_blog/creation/editor/119254076
目录
1. 什么需要随机数生成库?
在深度学习模型中,神经网络的参数的初始化值,通常会被设定随机值,而不是全0值。
2. 单个随机数生成器:random库
2.1 random函数库概述
random() 方法返回随机生成的一个实数,它在[0,1)范围内。
2.2 库
import random
2.3 主页
https://www.runoob.com/python3/python3-func-number-random.html
2.3 使用方法
#!/usr/bin/python3
import random
# 第一个随机数
print ("random() : ", random.random())
# 第二个随机数
print ("random() : ", random.random())
以上实例运行后输出结果为:
random() : 0.09690599908884856
random() : 0.8732120512570916
print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数
print( random.random() ) # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) ) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') ) # 从序列中随机选取一个元素
print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数
3. 随机数序列生成器:np.random
3.1 概述
np.random用于生成一个包含无数个数据的随机数序列。
由于np.random生成的不是一个数,而是随机数序列,不同的随机序列可以满足特定的概率分布。
3.2 库
import numpy as np
3.3 主页
3.4 五种使用方法
(1) numpy.random.randint(low, high=None, size=None, dtype='I')
生成size个符合均匀分布的一维整数序列,取值区间为[low, high),若没有输入参数high则取值区间为[0, low)
random.randint(8)
5
random.randint(8, size=1)
array([1])
random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
[1, 4, 1]],
[[2, 2, 5],
[7, 6, 4]]])
random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
[2, 7, 2]],
[[2, 7, 6],
[4, 7, 7]]], dtype=int64)
(1) numpy.random.uniform(low=0.0, high=1.0, size=None)
生成size个符合均匀分布的一维浮点数序列,取值范围为[low, high),默认取值范围为[0, 1.0)
random.uniform()
0.3999807403689315
random.uniform(size=1)
array([0.55950578])
random.uniform(5, 6)
5.293682668235986
random.uniform(5, 6, size=(2,3))
array([[5.82416021, 5.68916836, 5.89708586],
[5.63843125, 5.22963754, 5.4319899 ]])
(3)numpy.random.random(size=None)
生成size个符合均匀分布的一维小数序列,范围在[0.0, 1.0)之间的小数
random.random(5)
array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882])
random.random()
0.49761416226728084
相同用法:
numpy.random.random_sample
numpy.random.ranf
numpy.random.sample (抽取不重复)
(4)numpy.random.rand(d0, d1, ..., dn)
生成一个符合均匀分布的(d0, d1, ..., dn)维的小数序列,数组的元素取自[0, 1),若没有参数输入,则生成0维数据。
random.rand()
0.4378166124207712
random.rand(1)
array([0.69845956])
random.rand(3,2)
array([[0.15725424, 0.45786148],
[0.63133098, 0.81789056],
[0.40032941, 0.19108526]])
random.rand(3,2,1)
array([[[0.00404447],
[0.3837963 ]],
[[0.32518355],
[0.82482599]],
[[0.79603205],
[0.19087375]]])
(5)numpy.random.random_integers(low, high=None, size=None)
生成size个整数,取值区间为[low, high], 若没有输入参数high则取值区间为[1, low],注意这里左右都是闭区间
random.random_integers(5)
1
random.random_integers(5, size=1)
array([2])
random.random_integers(4, 5, size=(2,2))
array([[5, 4],
[4, 4]])
以上是关于[Python系列-8]:Python之人工智能 - 基本工具 -2- 随机数生成库的主要内容,如果未能解决你的问题,请参考以下文章
[Python系列-7]:Python之人工智能 - 基本工具 -1- Time库
[Python系列-9]:Python之人工智能 - 基本工具 -3- 函数可视化工具matplotlib
[Python系列-6]:Python之人工智能 - 基本语法-3-程序循环控制语句:for...in,while