【python】 numpy 中常用随机数函数的使用和记忆(不易混淆)

文章目录

    • 概述
    • 固定分布随机数(只需指定形状的随机函数)
      • np.random.random
      • np.random.rand
      • np.random.randn
    • 随机范围随机数(需要指定范围和形状的随机函数)
      • np.random.randint
      • np.random.uniform
      • np.random.normal
      • np.random.poisson
    • 代码示例
      • 固定分布随机数(只需指定形状的随机函数)代码示例
      • 随机范围随机数(需要指定范围和形状的随机函数)
    • 怎么记忆

概述

在使用numpy生成随机数过程中,通常有多个函数,容易混乱使用,也不知道哪些要加括号,哪些不需要加括号。本文主要总结使用过程中常用随机数生成的一些函数。包括 np.random.random、np.random.rand、np.random.randint、np.random.normal、np.random.uniform
这些函数的使用。

固定分布随机数(只需指定形状的随机函数)

np.random.random

这个函数用来生成0-1之间的均匀分布,输入是指定形状。例如np.random.random((2,5)) 生成的是2行5列的随机数,需要注意的是输入需要用括号括起来,也就是输入是一个元组。

np.random.rand

np.random.rand 与函数 np.random.random 同样用来生成0-1 的均匀随机数,但是输入本身自带形状,不需要用括号括起来。也就是如果要生成2行5列的数据,直接使用np.random.rand(2,5) 即可

np.random.randn

np.random.randn 与函数 np.random.rand 同样输入直接是形状,但是分布从均匀分布0-1变成高斯分布(u=0,sigma=1),也就是说,随机数是可以出现负值的。

随机范围随机数(需要指定范围和形状的随机函数)

np.random.randint

用来指定在某个指定范围,某个形状的随机数,输入是np.random.randint(low,high,size) ,也就是说输入是需要同时指定范围和形状,例如np.random.randint(1,5,size=(2,5)) 就是生成范围在1-5内,形状(2,5)的均匀分布随机数。

np.random.uniform

np.random.uniformnp.random.randint 同样需要同时指定范围和形状,但是与之不同的是,np.random.uniform 是可以生成小数的,而np.random.randint生成的范围内的整数。

np.random.normal

np.random.normalnp.random.randn 同样都是高斯函数分布,但是需要自行设定均值u和标准差sigma,输入格式为np.random.normal(u,sigma,size) ,u和sigma 其实也是设定范围的意思,也就是说范围和形状需要同时设定。

np.random.poisson

np.random.poissonnp.random.normal 同样是指定特定的分布函数,就是泊松函数和高斯函数的区别,但是泊松函数只需要设定lamda 就可以,(泊松函数lamda=均值)。输入形状np.random.poisson(lamda,size)

代码示例

下面用代码演示一下用上面7个随机函数随机生成形状2行5列的随机数。

固定分布随机数(只需指定形状的随机函数)代码示例

    a = np.random.random((2,5))print("random_shape:\n",a.shape)print("random:\n",a)print("\n",a)a = np.random.rand(2,5)print("rand_shape:\n",a.shape)print("rand:\n",a)print("\n",a)a = np.random.randn(2,5)print("randn_shape:\n",a.shape)print("randn:\n",a)print("\n",a)

输出
在这里插入图片描述

随机范围随机数(需要指定范围和形状的随机函数)

a = np.random.randint(0,10,size=(2,5))print("randint_shape:\n",a.shape)print("randint:\n",a)print("\n",a)a = np.random.normal(0,1,size=(2,5))print("normal_shape:\n",a.shape)print("normal:\n",a)print("\n",a)a = np.random.uniform(0,1,size=(2,5))print("uniform_shape:\n",a.shape)print("uniform:\n",a)print("\n",a)a = np.random.poisson(1.0,size=(2,5))print("poisson_shape:\n",a.shape)print("poisson:\n",a)print("\n",a)

输出
在这里插入图片描述

怎么记忆

容易记混,怎么记?
1、rand 结尾的 ,除了randint 需要指定最小最大值和形状,其他直接输入形状就行,
2、除了rand作为结尾的,其他结尾,都需要参数和size同时输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析案例(三):基于RFM分析的客户分群

实验2 基于RFM分析的客户分群 Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢…

PostgreSQL入门到实战-第二十九弹

PostgreSQL入门到实战 PostgreSQL中数据分组操作(四)官网地址PostgreSQL概述PostgreSQL中CUBE命令理论PostgreSQL中CUBE命令实战更新计划 PostgreSQL中数据分组操作(四) 如何使用PostgreSQL CUBE生成多个分组集 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不…

联为机器视觉的课程笔记

1.像素 2592x1944 相当于 500万像素 2.图像 本质是二位数组(内存里面是一维数组) 图像越大 分别率越大 3.特征对比相对大的 方便寻找大的 灰度图片进行处理 图像->区域->图像 函数 read_image() 从磁盘读取文件 get_image_size() 获取图片大小…

解析ShardingSphere:强大的分布式数据库中间件

在现代软件开发中,随着数据量的爆炸性增长和系统复杂度的持续上升,传统的单体数据库架构已经难以应对日益增长的性能与扩展性需求。针对这一挑战,ShardingSphere应运而生,它提供了一套全面的解决方案,帮助开发者构建更…

Offer必备算法25_01背包_四道力扣题详解(由易到难)

目录 ①牛客DP41 【模板】01背包 问题一解析 问题二解析 解析代码 滚动数组优化代码 ②力扣416. 分割等和子集 问题解析 解析代码 滚动数组优化代码 ③力扣494. 目标和 问题解析 解析代码 滚动数组优化代码 ④力扣1049. 最后一块石头的重量 II 问题解析 解析代…

音视频学习—音视频理论基础(2)

音视频学习—音视频理论基础(2) 1、音频的基本概念2、声音的三要素3、声音的本质4、奈奎斯特采样定律5、采样和采样率6、采样数和采样位数7、量化8、比特率(码率)9、响度和强度10、编码11、音频帧12、音频文件大小的计算总结 1、音…

【GEE实践应用】按照字段提取想要的研究区域

有的时候,我们在GEE中加载研究区域时,我们现有的矢量数据可能不止自己想要的研究区域的范围,这个时候,为了避免在ArcGIS中重新导出打包上传等操作,我们可以在GEE中按照字段进行选择我们想要的研究区域。下面是操作实例…

Leetcode二十三题:合并K个升序链表【22/1000 python】

“合并K个升序链表”,这是一道中等难度的题目,经常出现在编程面试中。以下是该问题的详细描述、解题步骤、不同算法的比较、代码示例及其分析。 问题描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中…

IOT系统上位机从OPC 服务器采集,时间戳的问题哪些现象?

上位机从OPC服务器采集数据时,时间戳问题可能出现以下现象: 1. 时间偏差: - 时区不一致:OPC服务器可能使用UTC(协调世界时)作为基准,而上位机可能使用本地时区。如果不进行适当转换&#xff0c…

【重学C语言】七、一维数组

【重学C语言】七、一维数组 一维数组基本语法数组长度访问数组中的数据数组下标创建数组并初始化方法一:在声明时初始化方法二:部分初始化方法三:动态初始化方法四:指定大小的初始化用字符串初始化字符数组基本示例数字类数组的常用操作字符类数组常用操作注意事项排序算法…

浏览器密码框明文密文兼容edge的问题

在网页中注册会员的时候,经常需要输入用户名(账号)和密码,在输入密码的时候,为了防止用户输错密码,经常会给密码框加一个小功能,就是点击密码框右侧闭着的小眼睛,可以让密文变成明文…

代码随想录算法训练营DAY23|C++二叉树Part.9|669.修建二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

文章目录 669.修建二叉搜索树递归法思路伪代码CPP代码 108.将有序数组转换为二叉搜索树递归伪代码CPP代码 538.把二叉搜索树转换为累加树思路递归伪代码递归CPP代码迭代法 669.修建二叉搜索树 力扣题目链接 文章讲解:669.修建二叉搜索树 视频讲解:你修剪…

【教学类-51-01】20240411动物皮毛图片的彩色打印PDF制作(一页两张图片,2个表格)

作品展示 背景需求: 为了便于快速做出A4两份图片的效果,设计以下代码,进行图片的PDF合成打印 代码参考: 【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具-CSDN博客文章浏览阅读531次,点赞8次,收…

医院预约系统微信小程序APP前后端

医院预约系统具体功能介绍:展示信息、可以注册和登录, 预约(包含各个科室的预约,可以预约每个各个医生),就诊引导包含预约的具体信息,包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…

基于”Python+”多技术融合在蒸散发与植被总初级生产力估算中的应用

熟悉蒸散发ET及其组分(植被蒸腾Ec、土壤蒸发Es、冠层截留Ei)、植被总初级生产力GPP的概念和碳水耦合的基本原理;掌握利用Python与ArcGIS工具进行课程相关的操作;熟练掌握国际上流行的Penman-Monteith模型,并能够应用该…

pytorch中通道数不一样怎么办?

在深度学习中,1x1卷积(有时也称为点卷积)是一种有效的技术,常用于改变卷积神经网络中特征图的通道数。这种方法可以在不改变特征图空间维度(高度和宽度)的情况下,调整其深度(通道数&…

有真的副业推荐吗?

#有真的副业推荐吗# 我做副业项目的时候,认识了一位带娃宝妈,讲一下她空闲时间做副业赚钱的故事吧。在一个温馨的小家庭里,李婷是一位全职宝妈,她的主要任务是照顾和陪伴自己可爱的宝宝。然而,随着宝宝逐渐长大&#x…

Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念,它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别,分别是:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)…

【MATLAB源码-第188期】基于matlab的64QAM系统相位偏移估计EOS算法仿真,对比补偿前后的星座图误码率。

操作环境: MATLAB 2022a 1、算法描述 1. 引言 M-QAM调制技术的重要性 现代通信系统追求的是更高的数据传输速率和更有效的频谱利用率。M-QAM调制技术,作为一种高效的调制方案,能够通过在相同的带宽条件下传输更多的数据位来满足这一需求…

Ubuntu使用SSH的X11Forwarding

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、X11Forwarding是什么?二、使用步骤1.打开SSH配置2.MobaXterm 三、测试总结 前言 有没有那么一种需求,就是有时候你需要将远端的画面…