当前位置: 首页 > article >正文

numpy random模块介绍

NumPy 的 random 模块用于生成随机数及执行随机采样。它支持多种概率分布和随机数生成方法,适合用于数值计算和科学研究。

常见的功能

  1. 生成随机数

    • numpy.random.rand():生成 [0, 1) 之间的均匀分布随机数(浮点数)。
    • numpy.random.randn():生成标准正态分布(均值 0,标准差 1)的随机数。
    • numpy.random.randint():生成指定范围内的整数。
  2. 随机选择与打乱

    • numpy.random.choice():从一个数组中随机选择元素。
    • numpy.random.shuffle():对数组进行原地打乱。
    • numpy.random.permutation():生成一个打乱后的数组,但不修改原数组。
  3. 基于概率分布的随机数

    • numpy.random.normal():生成正态分布的随机数。
    • numpy.random.uniform():生成均匀分布的随机数。
    • numpy.random.binomial():生成二项分布的随机数。
    • numpy.random.poisson():生成泊松分布的随机数。

示例代码

1. 生成随机数
import numpy as np

# 生成 5 个 [0, 1) 的随机数
rand_numbers = np.random.rand(5)
print("均匀分布的随机数:", rand_numbers)

# 生成 2x3 的标准正态分布随机数数组
randn_matrix = np.random.randn(2, 3)
print("标准正态分布随机数矩阵:\n", randn_matrix)

# 生成 5 个 [0, 10) 的整数
rand_integers = np.random.randint(0, 10, size=5)
print("随机整数:", rand_integers)
2. 随机选择与打乱
# 从列表中随机选择 3 个元素
arr = [1, 2, 3, 4, 5]
choices = np.random.choice(arr, size=3, replace=False)
print("随机选择:", choices)

# 对数组进行原地打乱
np.random.shuffle(arr)
print("打乱后的数组:", arr)

# 生成一个打乱后的数组
perm = np.random.permutation(arr)
print("打乱但不修改原数组:", perm)
print("原数组保持不变:", arr)
3. 生成基于概率分布的随机数
# 生成 10 个均值为 0,标准差为 1 的正态分布随机数
normal_numbers = np.random.normal(loc=0, scale=1, size=10)
print("正态分布随机数:", normal_numbers)

# 生成 5 个 [0, 1) 的均匀分布随机数
uniform_numbers = np.random.uniform(0, 1, size=5)
print("均匀分布随机数:", uniform_numbers)

# 生成二项分布的随机数,参数:n=10, p=0.5
binomial_numbers = np.random.binomial(n=10, p=0.5, size=5)
print("二项分布随机数:", binomial_numbers)

# 生成泊松分布的随机数,参数 lambda=3
poisson_numbers = np.random.poisson(lam=3, size=5)
print("泊松分布随机数:", poisson_numbers)

总结

  • numpy.random 提供了多种用于生成随机数的工具,包括不同分布的随机数生成、随机选择、打乱数组等。
  • rand() 和 randn() 用于生成均匀分布和正态分布的随机数。
  • choice()shuffle() 和 permutation() 用于随机选择或打乱数组。
  • normal()uniform() 等方法可生成基于特定概率分布的随机数。

http://www.kler.cn/news/337387.html

相关文章:

  • BUCK降压电路
  • 从底层结构开始学习FPGA(15)----时钟结构(通俗版)
  • Python | Leetcode Python题解之第461题汉明距离
  • 在 Kali Linux 中安装 Impacket
  • SpringBoot项目-Thymeleaf安装
  • 通信协议感悟
  • 玩机进阶教程-----高通芯片机型 无需借助其他工具 使用QPST备份 恢复全分区与全字库步骤详细解析
  • QSqlDatabase在多线程中的使用
  • 【Qt】控件概述(4)—— 输出类控件
  • Python安装库时使用国内源pip install -i
  • docker快速上手
  • 内网Debian\Ubuntu服务器安装dep包,基于apt-rdepends下载相关依赖
  • Golang | Leetcode Golang题解之第459题重复的子字符串
  • Spring Bean 生命周期 五步->七步->十步 扩展学习总结 bean作用域 Scope,手动注册自己new的对象
  • 四川音盛佳云电子商务有限公司助力商家扬帆起航
  • 产品经理内容分享(二):AI产品经理的入门路线图
  • 网页WebRTC电话和软电话哪个好用?
  • 碰撞检测 | 图解视线生成Bresenham算法(附ROS C++/Python/Matlab实现)
  • Sharding 分页原理分析
  • 传感器模块编程实践(二)W5500 SPI转以太网模块简介及驱动源码