热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PythonNumPy随机数生成详解及常用方法

NumPy的random模块提供了多种生成不同类型随机数的方法,包括均匀分布、正态分布等。本文详细介绍了uniform、rand、random、randint等函数的具体用法及其应用场景。

NumPy 的 random 模块提供了丰富的函数来生成不同类型的随机数,如均匀分布、正态分布等。本文将详细介绍这些函数的具体用法及其应用场景。

### 1. np.random.uniform 的用法

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

作用:生成在 [low, high) 区间内的随机数,可以是单个值、一维数组或多维数组。

参数:

  • low: float 或数组,默认为 0。
  • high: float 或数组,默认为 1。
  • size: int 或元组,默认为空。

示例:

import numpy as np

# 默认生成 [0, 1) 区间的随机数
print(np.random.uniform())

# 生成 [1, 5) 区间的随机数
print(np.random.uniform(1, 5))

# 生成 [1, 5) 区间的一维数组
print(np.random.uniform(1, 5, 4))

# 生成 4x3 的数组
print(np.random.uniform(1, 5, (4, 3)))

# 生成两个不同区间的随机数
print(np.random.uniform([1, 5], [5, 10]))

### 2. np.random.random_sample 的用法

np.random.random_sample(size=None)

作用:返回 [0, 1) 区间的浮点型随机数,通过 size 参数控制返回的形状。

示例:

# 生成单个随机数
print(np.random.random_sample())

# 生成一维数组
print(np.random.random_sample((5,)))

# 生成 [-5, 0) 区间的三行两列数组
print(5 * np.random.random_sample((3, 2)) - 5)

### 3. np.random.rand 的用法

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

作用:返回 [0, 1) 区间的浮点数,输入的 d0, d1, ..., dn 代表维度信息,没有输入时返回单个随机值。

示例:

# 生成单个随机数
print(np.random.rand())

# 生成 3x3 的数组
print(np.random.rand(3, 3))

# 生成 3x3x3 的数组
print(np.random.rand(3, 3, 3))

### 4. np.random.randint 的用法

np.random.randint(low, high=None, size=None, dtype='l')

作用:生成整型随机数,可以是单个随机数或多维数组。

参数:

  • low: int,随机数的下限。
  • high: int,默认为空,随机数的上限。当此值为空时,生成 [0, low) 区间的随机数。
  • size: int、元组或 None,指明生成的随机数的形状。
  • dtype: 可选 'int', 'int32',默认为 'l'。

示例:

# 生成单个随机数
print(np.random.randint(4))

# 生成一维数组
print(np.random.randint(4, size=4))

# 生成 [4, 10) 区间的一维数组
print(np.random.randint(4, 10, size=6))

# 生成 2x2 的数组
print(np.random.randint(4, 10, size=(2, 2), dtype='int32'))

### 5. np.random.random_integers 的用法

np.random.random_integers(low, high=None, size=None)

作用:randint 类似,但右边界能够取到。该函数即将被抛弃,建议使用 np.random.randint(low, high+1) 代替。

示例:

# 生成单个随机数
print(np.random.random_integers(1, 5))

# 生成一维数组
print(np.random.random_integers(1, 5, size=4))

### 总结

随机数可以分为两大类:一类是浮点型随机数,常用的有 np.random.uniformnp.random.randnp.random.random_sample;另一类是整数型随机数,常用的有 np.random.randint。其中,np.random.random_integers 将被 np.random.randint 取代。

以上内容希望能帮助大家更好地理解和使用 NumPy 的随机数生成函数。


推荐阅读
  • 利用50行Python代码打造经典游戏,既是休闲娱乐,也是编程学习的利器
    Free Python Games 是一个适合学生和初学者的项目,它不仅提供了高度的组织性和灵活性,还极大地激发了用户的探索与理解能力。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 本文探讨了在Python中多线程与多进程的性能差异,特别是在处理CPU密集型任务和I/O密集型任务时的表现。由于全局解释器锁(GIL)的存在,多线程在利用多核CPU方面表现不佳,而多进程则能有效利用多核资源。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 本文详细介绍了如何使用 Python 编程语言中的 Scapy 库执行 DNS 欺骗攻击,包括必要的软件安装、攻击流程及代码示例。 ... [详细]
  • 本文详细介绍了Objective-C中的面向对象编程概念,重点探讨了类的定义、方法的实现、对象的创建与销毁等内容,旨在帮助开发者更好地理解和应用Objective-C的面向对象特性。 ... [详细]
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
author-avatar
手机用户2602931923_450
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有