热门标签 | 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 的随机数生成函数。


推荐阅读
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 写在前面,排序算法属于面试中绝对不会错过的一道题,不管是原理,手撕,变形,优化,全都是考点。接 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • #点球小游戏fromrandomimportchoiceimporttimescore[0,0]direction[left,center,right]defkick() ... [详细]
  • 社交网络中的级联行为 ... [详细]
  • Keras 实战:自编码器入门指南
    本文介绍了使用 Keras 框架实现自编码器的基本方法。自编码器是一种用于无监督学习的神经网络模型,主要功能包括数据降维、特征提取等。通过实际案例,我们将展示如何使用全连接层和卷积层来构建自编码器,并讨论不同维度对重建效果的影响。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文深入探讨了Python中的高阶函数和Lambda表达式的使用方法,结合实际案例解析其应用场景,帮助开发者更好地理解和运用这些强大的工具。 ... [详细]
  • 本教程详细介绍了如何使用 TensorFlow 2.0 构建和训练多层感知机(MLP)网络,涵盖回归和分类任务。通过具体示例和代码实现,帮助初学者快速掌握 TensorFlow 的核心概念和操作。 ... [详细]
  • 本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。 ... [详细]
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社区 版权所有