numpy np.random生成随机数
2023-03-20 15:21:42 时间
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
参数介绍:
- low: 采样下界,float类型,默认值为0;
- high: 采样上界,float类型,默认值为1;
- 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同理
相关文章
- PHP如何实现依赖注入
- 面试侃集合 | SynchronousQueue非公平模式篇
- 用鸿蒙开发板制作一个空压机储气罐自动排水装置
- 我被编程语言PUA了:用互联网黑话写代码,每天都在“赋能”变量
- 关于PHP协程与阻塞的思考
- 一篇学会资源库Repository的性能优化
- 如何使用开源MOSH获得持久性的SSH连接?
- PHP基础|如何解决中文乱码问题?
- 适用所有程序员的3种提高编程技能的方法
- Python Decorator基础
- 一日一技:等待多个线程同时结束的两种方法
- 嵌入式开发输出调试和日志信息的几种方法
- 机器学习算法实践:朴素贝叶斯 (Naive Bayes)
- 消息队列解耦是骗小孩儿的
- 前端浏览器缓存知识梳理
- 新时代创意布局不完全指南
- 为什么说用 Babel 编译 Typescript 是更好的选择
- 前端开发中这些小技巧,你知道几个?
- 鸿蒙轻内核M核源码分析系列十一 信号量Semaphore
- 如何成功地过渡到低代码平台?