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


推荐阅读
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社区 版权所有