随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

numpy np.random生成随机数

1.生成指定形状0-1之间的随机数 :np.random.random()和np.random.rand()

注意:np.random.random()如果要生成多维数据时需要传入一个数组(tuple类型),而np.random.rand()可以直接传入

#生成0-1之间的随机数
import numpy as np
np.random.random(100)
np.random.rand(100)

#区别
np.random.random((3,4))  #需要以数组形式传入
np.random.rand(3,4)

 

2.生成指定范围内的随机整数np.random.randint(low=,higt=,size=,dtype=)

low和hight代表指定范围内的最大值和最小值

size可以时数组的元素个数也可以是数组的维数,如size=(2,3),即是生成一个2行3列的数据

dtype只能写np.int32或者是np.int64

#如果只传入一个参数,则取该范围内的某一个数据
np.random.randint(10)  

#不然就得传入三个参数,dtype可以不传入
np.random.randint(0,100,(3,4))

 

3.与正态分布有关的函数,np.random.randn()和np.random.normal()

区别:np.random.randn() 生成服从标准正态分布,可以传n个参数,代表着维数

np.random.normal(loc,scale,size) 生成指定均值和标准差的正态分布随机数,参数分别代表着均值标准差和随机数的个数,只能生成一维数组,可以配合reshape()使用

np.random.randn(3)  #返回三个值
np.random.randn(3,4)

np.random.normal(10)  #只返回一个值
np.random.normal(2,0.5,10).reshape(2,5)

 

4.均匀分布 np.random.uniform()

numpy.random.uniform(low,high,size)

从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high

参数介绍:

  1. low: 采样下界,float类型,默认值为0;
  2. high: 采样上界,float类型,默认值为1;
  3. size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值

返回值:ndarray类型,其形状和参数size中描述一致。

np.random.uniform(10)  #返回一个值
np.random.uniform(1,10,10)  #返回一个一维数组
np.random.uniform(1,10,(2,3))  #返回一个二维数组

 

5.np.random.seed()按照种子来生成随机数,种子一样,随机数结果一致

#不管执行多少回结果都一样
np.random.seed(10)
np.random.rand(10)

 

6.np.random.shuffle()打乱数组元素顺序

a=np.arange(10)
np.random.shuffle(a)  #输出的顺序被打乱了

 

7.np.random.choice()按照指定概率从指定数组中,生成随机数

#进行10000次掷硬币实验
l=[0,0]
for i in range(10000):
    f=np.random.choice([0,1],p=[0.5,0.5])
    l[f]=l[f]+1
p=l[0]/(l[0]+l[1])

参数表述0被抽到的概率为0.5;1同理

 

posted on   小小喽啰  阅读(10719)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示