菜鸟笔记-Numpy函数-random.rand/random.standard_normal/random.normal/random.uniform

random.rand函数

numpy.random.rand 是 NumPy 库中的一个函数,用于从均匀分布中生成随机浮点数。这些浮点数位于半开区间 [0.0, 1.0),也就是说它们包括 0.0 但不包括 1.0。

1函数示例

numpy.random.rand(d0, d1, ..., dn)

参数

  • d0, d1, ..., dn:整数,表示输出的随机数组的维度。如果没有提供任何参数,则返回一个标量(单个随机浮点数)。

返回值

  • 返回一个形状为 (d0, d1, ..., dn) 的数组,其中包含了从均匀分布 [0.0, 1.0) 中随机抽取的浮点数。

2示例

示例 1:生成单个随机浮点数

import numpy as np  # 生成一个位于 [0.0, 1.0) 之间的随机浮点数  
random_float = np.random.rand()  
print(random_float)

输出结果: 生成一个位于 [0.0, 1.0) 之间的随机浮点数 

0.7292651888729444

示例 2:生成一个随机浮点数数组

import numpy as np  # 生成一个形状为 (3,) 的数组,包含随机浮点数  
random_floats = np.random.rand(3)  
print(random_floats)

输出结果类似于:

[0.22655261 0.14549794 0.81959531]

示例 3:生成一个二维随机浮点数数组

import numpy as np  # 生成一个形状为 (2, 3) 的二维数组,包含随机浮点数  
random_matrix = np.random.rand(2, 3)  
print(random_matrix)

输出结果类似于:

[[0.69793487 0.92080438 0.79024895]
 [0.21149495 0.55471829 0.96925194]]

示例 4:生成一个多维随机浮点数数组

import numpy as np  # 生成一个形状为 (2, 2, 2) 的三维数组,包含随机浮点数  
random_tensor = np.random.rand(2, 2, 2)  
print(random_tensor)

输出结果为:

[[[0.1002439  0.65823964]
  [0.83135404 0.64682726]]

 [[0.23616227 0.45717437]
  [0.23748224 0.80672744]]]

3注意事项

  • numpy.random.rand 函数生成的随机数是从均匀分布中抽取的,也就是说,每个数在 [0.0, 1.0) 区间内被抽取的概率是相同的。
  • 生成的随机数实际上是伪随机数,这意味着它们是通过一个确定的算法生成的,并且在每次运行程序时,如果随机数生成器的种子(seed)相同,则生成的随机数序列也会相同。如果需要每次运行程序时都生成不同的随机数序列,可以在程序开始时设置随机数生成器的种子,如 np.random.seed(some_integer)

通过 numpy.random.rand 函数,你可以方便地生成任意形状的随机浮点数数组,这在需要进行模拟、测试算法或创建随机数据集时非常有用。

random.standard_normal函数

 numpy.random.standard_normal 是 NumPy 库中的一个函数,用于从标准正态分布(也称为单位正态分布)中生成随机浮点数。标准正态分布是一种概率分布,其均值为 0,标准差为 1。

1函数示例

numpy.random.standard_normal(size=None)

参数

  • size:整数或整数元组,可选参数。输出数组的形状。如果未提供,则返回一个标量(单个随机浮点数)。

返回值

  • 返回一个形状为 size 的数组,数组中的元素是从标准正态分布中随机抽取的浮点数。

2示例

示例 1:生成单个标准正态分布的随机数

import numpy as np  # 生成一个标准正态分布的随机数  
random_normal = np.random.standard_normal()  
print(random_normal)

结果输出:

-0.45627660030943773

示例 2:生成一个标准正态分布的随机数组

import numpy as np  # 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数  
random_normals = np.random.standard_normal(3)  
print(random_normals)

结果输出:

[-1.33435244 -0.1071087  -1.13890303]

示例 3:生成一个二维标准正态分布的随机数组

import numpy as np  # 生成一个形状为 (2, 3) 的二维数组,包含标准正态分布的随机数  
random_normal_matrix = np.random.standard_normal((2, 3))  
print(random_normal_matrix)

结果输出:

[[-0.27204649  0.89816457  0.61386239][-0.39830262 -0.44730264  0.89667475]]

示例 4:设置随机数生成器的种子以获得可重复的结果

import numpy as np  # 设置随机数生成器的种子  
np.random.seed(0)  # 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数  
# 由于设置了种子,每次运行这段代码时都会得到相同的随机数序列  
reproducible_normals = np.random.standard_normal(3)  
print(reproducible_normals)
结果输出:
[1.76405235 0.40015721 0.97873798]

3注意事项

  • numpy.random.standard_normal 生成的是标准正态分布的随机数,其均值(mean)为 0,标准差(standard deviation)为 1。
  • 和 numpy.random.rand 一样,numpy.random.standard_normal 生成的随机数也是伪随机数。如果需要可重复的随机数序列,可以通过设置随机数生成器的种子来实现。
  • 标准正态分布在实际应用中非常广泛,例如在统计学、机器学习、信号处理等领域中经常需要用到。通过 numpy.random.standard_normal 函数,你可以方便地生成符合标准正态分布的随机数据。

random.normal 函数

numpy.random.normal 是 NumPy 库中的一个函数,用于从正态分布(也称为高斯分布)中抽取随机样本。正态分布是一个连续概率分布,其中大多数值聚集在均值附近,远离均值的值越来越少。

1函数示例

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数

  • loc:分布的均值(或“中心”)的浮点值。默认值为 0.0。
  • scale:分布的标准差(或“宽度”或“分散度”)的浮点值。默认值为 1.0。
  • size:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为 (size,) 的一维数组。如果为形状元组,则返回一个形状为 size 的数组。

返回值

返回一个或多个从正态分布中抽取的随机样本。

2举例说明

1.抽取一个随机样本

import numpy as np  # 从均值为0,标准差为1的正态分布中抽取一个随机样本  
sample = np.random.normal()  
print(sample)

 输出结果:

2.240893199201458

2.抽取多个随机样本

import numpy as np  # 从均值为0,标准差为1的正态分布中抽取5个随机样本  
samples = np.random.normal(size=5)  
print(samples)

输出结果:

[ 1.86755799 -0.97727788  0.95008842 -0.15135721 -0.10321885]

3.抽取具有指定均值和标准差的随机样本 

 

import numpy as np  # 从均值为3,标准差为2的正态分布中抽取3个随机样本  
samples = np.random.normal(loc=3, scale=2, size=3)  
print(samples)

输出结果:

[3.821197   3.28808714 5.90854701]

 4.抽取二维数组的随机样本

import numpy as np  # 从均值为0,标准差为1的正态分布中抽取一个2x3的随机样本数组  
samples = np.random.normal(size=(2, 3))  
print(samples)

输出结果:

[[ 0.76103773  0.12167502  0.44386323][ 0.33367433  1.49407907 -0.20515826]]

这些例子展示了如何使用 numpy.random.normal 函数来从正态分布中抽取随机样本,并可以通过调整 loc 和 scale 参数来改变分布的均值和标准差。size 参数用于指定输出的形状。 

random.uniform函数

numpy.random.uniform 是 NumPy 库中的一个函数,用于从均匀分布中抽取随机样本。均匀分布是一个概率分布,其中所有可能的结果都有相同的概率被选中。

1函数示例

numpy.random.uniform(low=0.0, high=1.0, size=None)

参数

  • low:分布的下界。所有生成的随机数都将大于或等于这个值。默认值为 0.0。
  • high:分布的上界(不包含)。所有生成的随机数都将小于这个值。默认值为 1.0。
  • size:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为 (size,) 的一维数组。如果为形状元组,则返回一个形状为 size 的数组。

返回值

返回一个或多个从均匀分布中抽取的随机样本。

2举例说明

1.抽取一个随机样本

import numpy as np # 从0到1之间的均匀分布中抽取一个随机样本 
sample = np.random.uniform() 
print(sample)

 结果输出:

0.11827442586893322

2.抽取多个随机样本 

 

import numpy as np # 从0到1之间的均匀分布中抽取5个随机样本 
samples = np.random.uniform(size=5) 
print(samples)

 输出结果:

[0.63992102 0.14335329 0.94466892 0.52184832 0.41466194]

3.指定分布的范围

import numpy as np # 从2到8之间的均匀分布中抽取3个随机样本 
samples = np.random.uniform(low=2, high=8, size=3) 
print(samples)

 输出结果:

[3.58733367 6.64540214 4.73690199]

4.抽取二维数组的随机样本

import numpy as np # 从0到1之间的均匀分布中抽取一个2x3的随机样本数组 
samples = np.random.uniform(size=(2, 3)) 
print(samples)

输出结果:

[[0.56843395 0.0187898  0.6176355 ][0.61209572 0.616934   0.94374808]]

这些例子展示了如何使用 numpy.random.uniform 函数来从均匀分布中抽取随机样本。你可以通过调整 low 和 high 参数来改变分布的范围,并使用 size 参数来指定输出的形状。这个函数在需要生成一定范围内随机数的场合非常有用,例如模拟、统计测试等。

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

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

相关文章

Redis从入门到精通(九)Redis实战(六)基于Redis队列实现异步秒杀下单

文章目录 前言4.5 分布式锁-Redisson4.5.4 Redission锁重试4.5.5 WatchDog机制4.5.5 MutiLock原理 4.6 秒杀优化4.6.1 优化方案4.6.2 完成秒杀优化 4.7 Redis消息队列4.7.1 基于List实现消息队列4.7.2 基于PubSub的消息队列4.7.3 基于Stream的消息队列4.7.4 基于Stream的消息队…

Golang单元测试和压力测试

一.单元测试 1.1 go test工具 go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程类似,并不需要学习新的语法,规则和工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的…

零代码编程:用kimichat打造一个最简单的window程序

用kimichat可以非常方便的自动生成程序代码,有些小程序可能会频繁使用,如果每次都在vscode中执行就会很麻烦。常用的Python代码,可以直接做成一个window程序,点击就可以打开使用,方便很多。 首先,把kimich…

Tokenize Anything via Prompting

SAM的延续,把SAM输出的token序列用来进行分类,分割和一个自然语言的decoder处理,但其实现在多模态的图像的tokenizer也几乎都是用VIT来实现的。一开始认为这篇文章可能是关于tokenize的,tokenize还是很重要的,后来看完…

JVM虚拟机(一)介绍、JVM组成、堆、栈、方法区/元空间、直接内存

目录 一、JVM 介绍1.1 为什么要学 JVM?1.2 JVM 是什么? 二、JVM 组成2.1 程序计数器2.2 Java堆1)JVM 内存结构2)Java 1.7 和 1.8 中堆的区别 2.3 Java虚拟机栈1)虚拟机栈 和 栈帧2)常见面试题 2.4 方法区/元…

搜索二维矩阵2 合并两个有序链表

240. 搜索二维矩阵 II - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int i matrix.size() - 1, j 0;while(i > 0 && j < matrix[0].size()){if(matrix[i][j…

Vue中watch与计算属性computed

最近&#xff0c;写vue代码&#xff0c;判断父组件传来的type来作为条件判断&#xff0c;并用v-if v-else来控制页面展示。 起初用watch监听了type&#xff0c;发现值改变了&#xff0c;但是写在data配置项的visible属性书写错误&#xff0c;未实现响应式&#xff0c;如下&…

nodejs常用命令

序号命令名注释1clear 或者 cls 清空界面2ls/dir查看列表(list)3cd 目录名进入到目录中去4cd ..返回上一级目录5 cd \直接回到根目录 6CtrlC 停止 Node 程序7输入部分文件名后按下 Tab 键补全文件名 或 目录名&#xff0c; 多次tab会进行切换8 ↑ ↓ 上下箭头切换历史输…

基于wsl的Ubuntu20.04上安装桌面环境

在子系统Ubuntu20.04上安装桌面环境 1. 更换软件源 由于Ubuntu默认的软件源在国外&#xff0c;有时候后可能会造成下载软件卡顿&#xff0c;这里我们更换为国内的阿里云源&#xff0c;其他国内源亦可。 双击打开Ubuntu20.04 LTS图标&#xff0c;在命令行中输入 # 备份原来的软…

索尼相机照片清理软件

在使用索尼相机拍摄照片的时候有时我们需要同时拍摄JPG格式和RAW格式&#xff0c;这在后期选图的时候给我们带来一些麻烦。我们固然可以选用Br来管理照片&#xff0c;但是现在我们可以有一个更轻量的软件&#xff08;8.8MB&#xff09;来做到一部分功能。 我们将照片从SD卡导出…

docker安装mysql和nacos集群加nginx代理

安装mysql nacos 1、拉取mysql镜像 docker pull mysql:8.0.272、定义挂载目录 在/home/mysql目录下新建两个文件夹&#xff0c;一个叫data另一个叫conf 命令形式&#xff1a; mkdir -p /home/mysql/{data,conf}3、配置my.cnf&#xff08;my.ini&#xff09; vim /home/my…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.03.31-2024.04.05

文章目录~ 1.AutoWebGLM: Bootstrap And Reinforce A Large Language Model-based Web Navigating Agent2.Training LLMs over Neurally Compressed Text3.Unveiling LLMs: The Evolution of Latent Representations in a Temporal Knowledge Graph4.Visualization-of-Thought …

Java(二)面向对象进阶

目录 面向对象 多态性 向下转型 Object equals() toString() clone() finalize() Static 单例模式 代码块 final 抽象类与抽象方法(或abstract关键字&#xff09; 接口 接口的多态性 接口的默认方法 内部类 成员内部类 局部内部类 枚举类 实现接口的枚举类 …

网络安全流量平台_优缺点分析

FlowShadow&#xff08;流影&#xff09;&#xff0c;Ntm&#xff08;派网&#xff09;&#xff0c;Elastiflow。 Arkimesuricata&#xff0c;QNSMsuricata&#xff0c;Malcolm套件。 Malcolm套件优点&#xff1a;支持文件还原反病毒引擎&#xff08;clamav/yara&#xff09;…

IntelliJ IDEA 2024.1 更新亮点汇总:全面提升开发体验

IntelliJ IDEA 2024.1 更新亮点汇总&#xff1a;全面提升开发体验 文章目录 IntelliJ IDEA 2024.1 更新亮点汇总&#xff1a;全面提升开发体验摘要引言 IntelliJ IDEA 2024.1 的新增功能主要亮点全行代码完成 最终的支持 Java 22 功能新航站楼 贝塔编辑器中的粘滞线 人工智能助…

【SpringBoot3】SpringBoot入门

需求&#xff1a;使用 SpringBoot 开发一个web应用&#xff0c;浏览器发起请求 /hello后&#xff0c;给浏览器返回字符串 “hello world "。 步骤 ①. 创建Maven工程 ②. 导入spring-boot-stater-web起步依赖 <dependency> <groupId>org.springframework…

React18从入门到实战

文章目录 一、React环境的搭建二、项目文件的介绍&#xff08;1&#xff09;package.json&#xff0c;他是项目存放依赖包的地方&#xff0c;里面包括了一些项目核心包及下载的其他插件包&#xff08;2&#xff09;src文件夹是项目源码目录&#xff0c;平时开发页面就在其中&am…

linux 用户组与附加组

用户和用户组 查看用户 cat /etc/passwdroot:x:0:0:root:/root:/bin/bash用户名&#xff08;例如 root&#xff09; 密码占位符&#xff08;通常是 x&#xff0c;表示密码存储在 /etc/shadow 文件中&#xff09; 用户 ID&#xff08;UID&#xff09; 组 ID&#xff08;GID&am…

Leetcode 581. 最短无序连续子数组

心路历程&#xff1a; 本以为这道题要用动态规划求解&#xff0c;因为题目中这几个关键字与动态规划太匹配了&#xff0c;结果想了半天也没发现dp(i)和dp(i-1)的递推关系。 这道题本意考察双指针的做法&#xff0c;也可以用排序后做比较的方式来做。 注意的点&#xff1a; 1…

修电机所需要的基本工具

等距式 模具 同心式模具 电机划线刀 压脚 千分尺 -----测量线径 钳形电流表------- 测量 空载 满载下的电流值 摇表&#xff0c; 测量线圈是否碰到外壳 指针式万用表 胶锤 整理线圈 绝缘纸和青稞纸&#xf…