Python.Numpy学习零碎笔记之随机数生成
2017-10-30 13:54
639 查看
在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下
1 numpy.random.rand( )
rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
dn表格每个维度
返回值为指定维度的array
2 numpy.random.randn( )
randn函数返回一个或一组样本,具有标准正态分布。
dn表格每个维度
返回值为指定维度的array
3 numpy.random.randint( )
返回随机整数,范围区间为[low,high),包含low,不包含high
参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
high没有填写时,默认生成随机数的范围是[0,low)
4 生成[0,1)之间的浮点数
numpy.random.random_sample(size=None)
numpy.random.random(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)
5 numpy.random.choice( )
从给定的一维数组中生成随机数
参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
a为整数时,对应的一维数组为np.arange(a)
参数p的长度与参数a的长度需要一致;
参数p为概率,p里的数据之和应为1
6 numpy.random.seed( )
np.random.seed()的作用:使得随机数据可预测。
当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数
1 numpy.random.rand( )
numpy.random.rand(d0,d1,…,dn)
rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
dn表格每个维度
返回值为指定维度的array
import numpy as np a = np.random.rand(3,3) print(a) b = np.random.rand(4,3,3) print(b)
[[ 0.13833841 0.94703904 0.18947573] [ 0.54098698 0.18486109 0.47432247] [ 0.18181211 0.10269268 0.48891685]]
[[[ 0.2152551 0.72241842 0.49597082] [ 0.6020242 0.11430687 0.92149071] [ 0.6730968 0.21424972 0.86769038]] [[ 0.21263884 0.68281043 0.93274713] [ 0.1883081 0.7677195 0.36024236] [ 0.54497332 0.2375934 0.62899007]] [[ 0.18842451 0.92429477 0.39796031] [ 0.01540998 0.85513435 0.55736133] [ 0.40429504 0.85572897 0.58061831]] [[ 0.25351898 0.68418227 0.45860821] [ 0.55450712 0.11808712 0.19754229] [ 0.67555046 0.1237125 0.64581371]]]
2 numpy.random.randn( )
numpy.random.randn(d0,d1,…,dn)
randn函数返回一个或一组样本,具有标准正态分布。
dn表格每个维度
返回值为指定维度的array
np.random.randn() # 当没有参数时,返回单个数据
-0.25992502584368105
np.random.randn(2,3)
[[ 0.10243619 1.07891022 -1.05998665] [ 0.67506648 1.11934079 -0.8100286 ]]
np.random.randn(2,2,3)
[[[ 0.41541833 0.99428651 -0.66999151] [-0.19904438 -0.60104075 -1.51317465]] [[ 0.65306951 -1.91241846 0.75446768] [-1.24865309 -0.31850884 -0.71423429]]]
3 numpy.random.randint( )
numpy.random.randint(low, high=None, size=None, dtype=’l’)
返回随机整数,范围区间为[low,high),包含low,不包含high
参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
high没有填写时,默认生成随机数的范围是[0,low)
np.random.randint(2,size=6)
[0 0 1 1 1 0] # 返回[0,2)之间的整数
np.random.randint(2,6)
4 # 返回一个[2,6)之间的随机整数
np.random.randint(2)
1 # 不输入size参数的时候默认为1,返回一个[0,2)之间的随机整数
np.random.randint(-6,6,size=(3,3))
[[-1 2 -6] [-5 4 -2] [-6 -2 2]]
4 生成[0,1)之间的浮点数
numpy.random.random_sample(size=None)
numpy.random.random(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)
print('-----------random_sample--------------') print(np.random.random_sample(size=(2,2))) print('-----------random--------------') print(np.random.random(size=(2,2))) print('-----------ranf--------------') print(np.random.ranf(size=(2,2))) print('-----------sample--------------') print(np.random.sample(size=(2,2)))
-----------random_sample-------------- [[ 0.39709353 0.37642581] [ 0.46533729 0.9582476 ]] -----------random-------------- [[ 0.17193343 0.48426309] [ 0.16108179 0.02737971]] -----------ranf-------------- [[ 0.02537128 0.3272678 ] [ 0.05162058 0.49541444]] -----------sample-------------- [[ 0.07418193 0.75022483] [ 0.8168686 0.32112412]]
5 numpy.random.choice( )
numpy.random.choice(a, size=None, replace=True, p=None)
从给定的一维数组中生成随机数
参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
a为整数时,对应的一维数组为np.arange(a)
np.random.choice(5,3)
[4, 1, 4]
p.random.choice(5, 3, replace=False) # 当replace为False时,生成的随机数不能有重复的数值
[0, 3, 1]
np.random.choice(5,size=(3,2))
[[1, 0], [4, 2], [3, 3]]
demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone'] np.random.choice(demo_list,size=(3,3))
[['moto', 'iphone', 'xiaomi'], ['lenovo', 'xiaomi', 'xiaomi'], ['xiaomi', 'lenovo', 'iphone']]
参数p的长度与参数a的长度需要一致;
参数p为概率,p里的数据之和应为1
demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone'] np.random.choice(demo_list,size=(3,3), p=[0.1,0.6,0.1,0.1,0.1])
[['sansumg', 'sansumg', 'sansumg'], ['sansumg', 'sansumg', 'sansumg'], ['sansumg', 'xiaomi', 'iphone']]
6 numpy.random.seed( )
np.random.seed()的作用:使得随机数据可预测。
当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数
相关文章推荐
- Python.Numpy学习零碎笔记之便捷函数
- Python学习笔记(2):生成随机数
- Python学习笔记(四)—生成随机数
- Python.Numpy学习零碎笔记之数组与矩阵
- Python.Numpy学习零碎笔记之矩阵创建
- Numpy学习笔记之随机数生成
- 【Python学习笔记】-生成验证码图片
- python学习之路-生成随机数和md5加密
- 使用python-pygame包生成一个艺术照片-学习笔记13
- cocos2dx-3.x学习笔记二:随机数的生成及注意问题
- 学习Python数据分析随手笔记【一】numpy数组的函数简单应用
- Python3学习笔记(五)--列表生成式
- python学习笔记之numpy入门
- python 科学计算 — numpy 学习笔记
- 学习Python数据分析随手笔记【二】numpy数组的属性
- python numpy中随机数生成包random
- 生成特定分布随机数的方法:Python seed() 函数&numpy &scikit-learn随机数据生成
- 07-python学习笔记-列表生成式
- numpy.zeros 使用方法 python学习笔记1
- Python学习笔记 --- pip生成依赖文件说明