【NumPy】NumPy实战入门:线性代数(dot、linalg)与随机数(numpy.random)详解

server/2024/9/24 6:44:49/

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式+人工智能领域,具备多年的嵌入式硬件产品研发管理经验。

📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导、简历面试辅导、技术架构设计优化、开发外包等服务,有需要可加文末联系方式联系。

💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

NumPy实战入门:线性代数(dot、linalg)与随机数(numpy.random)详解

  • 1. 前言
  • 2. NumPy库简介
  • 3. 线性代数模块
    • 3.1 numpy.dot — 矩阵乘法
    • 3.2 numpy.linalg — 矩阵分解
  • 4. 随机数模块
    • 4.1 numpy.random.uniform—均匀分布
    • 4.2 numpy.random.normal—正态分布
    • 4.3 numpy.random.choice—随机抽样
    • 4.4 numpy.random.shuffle—洗牌
  • 5. 总结

在这里插入图片描述

1. 前言

NumPy,全称为Numerical Python,是Python语言中最核心的科学计算包,它为大型多维数组和矩阵提供了高效的数据结构,以及大量的数学函数来操作这些数组。本文将深入探讨NumPy中的线性代数模块和随机数生成模块,通过示例代码展示其强大功能,并在最后进行总结。

2. NumPy库简介

NumPy的核心是其N维数组对象ndarray,它允许对元素进行矢量化运算,大大提高了计算效率。此外,NumPy还提供了广泛的数学函数,这些函数可以直接应用于数组上的每个元素,无需循环。这使得NumPy成为数据分析、机器学习、图像处理等领域不可或缺的工具。

3. 线性代数模块

numpydot___19">3.1 numpy.dot — 矩阵乘法

numpy.dot函数用于计算两个数组的点积或矩阵乘法。当输入是一维数组时,它计算的是内积;对于二维数组(矩阵),则是标准的矩阵乘法。

示例代码:

import numpy as np# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 计算矩阵乘积
C = np.dot(A, B)
print("矩阵乘积 C:\n", C)

numpylinalg___37">3.2 numpy.linalg — 矩阵分解

numpy.linalg子模块提供了各种矩阵分解方法,如求逆、特征值、奇异值分解等。

示例代码:

import numpy as np# 定义一个矩阵
A = np.array([[1, 2], [3, 4]])# 计算矩阵的逆
A_inv = np.linalg.inv(A)
print("矩阵 A 的逆:\n", A_inv)# 计算矩阵的特征值
eigenvalues, eigenvectors = np.linalg.eig(A)
print("矩阵 A 的特征值:\n", eigenvalues)

4. 随机数模块

numpy.random模块提供了丰富的随机数生成功能,支持多种概率分布。

numpyrandomuniform_61">4.1 numpy.random.uniform—均匀分布

使用numpy.random.uniform可以生成指定范围内的均匀分布随机数。

示例代码:

import numpy as np# 生成10个[0, 1)区间内的均匀分布随机数
uniform_numbers = np.random.uniform(size=10)
print("均匀分布随机数:\n", uniform_numbers)

numpyrandomnormal_75">4.2 numpy.random.normal—正态分布

numpy.random.normal用于生成正态分布(高斯分布)的随机数。

示例代码:

import numpy as np# 生成10个均值为0,标准差为1的正态分布随机数
normal_numbers = np.random.normal(loc=0, scale=1, size=10)
print("正态分布随机数:\n", normal_numbers)

numpyrandomchoice_89">4.3 numpy.random.choice—随机抽样

numpy.random.choice用于从给定的一维数组中随机抽取样本。

示例代码:

import numpy as np# 从数组[0, 1, ..., 9]中无放回抽取3个样本
samples = np.random.choice(10, size=3, replace=False)
print("随机抽样结果:\n", samples)

numpyrandomshuffle_102">4.4 numpy.random.shuffle—洗牌

numpy.random.shuffle用于打乱数组顺序。

示例代码:

import numpy as np# 创建一个数组并进行洗牌
array = np.arange(10)
np.random.shuffle(array)
print("洗牌后的数组:\n", array)

5. 总结

NumPy的线性代数和随机数生成功能极大地扩展了Python在科学计算和数据处理方面的应用范围。通过高效的矩阵运算和灵活的随机数生成器,开发者能够轻松实现复杂的数据分析和模型构建。无论是进行大规模数据的统计分析,还是构建机器学习算法的基础,NumPy都扮演着至关重要的角色。掌握这些核心功能,将使你的Python编程之旅更加丰富多彩。


http://www.ppmy.cn/server/43043.html

相关文章

[C][指针]详细讲解

目录 0.铺垫1.指针是什么?2.指针变量3.指针和指针类型4.指针类型的意义5.野指针1.野指针成因2.如何规避野指针6.指针运算 6.指针和数组7.二级指针(n级指针)8.指针数组9.数组指针10.&数组名VS数组名11.函数指针 12.函数指针数组13.回调函数 0.铺垫 在…

gpt-4o考场安排

说明 :经过多次交互,前后花了几个小时,总算完成了基本功能。如果做到按不同层次分配考场,一键出打印结果就完美了。如果不想看中间“艰苦”的过程,请直接跳到“最后结果”及“食用方法”。中间过程还省略了一部分交互&…

【网络】UDP协议

应用层协议是请求与响应服务,客户端的请求与服务器的响应是通过应用层传输到网络中的,但再实际上,应用层并不能直接通信,需要将数据进行报头的封装,向下层交付,贯穿整个协议栈。我们已经谈到应用层协议负责…

IP协议基本概念

IP协议全称为"网际互连协议(Internet Protocol)",IP协议是TCP/IP体系中的网络层协议 TCP作为传输层控制协议,其保证的是数据传输的可靠性和传输效率,但TCP提供的仅仅是数据传输的策略,而真正负责…

十四、监控脚本

14.1 Web服务器监控 应用场景:监控web服务器状态,异常时邮件报警。 脚本说明:通过wget(也可以用curl)监控服务器状态,如果不能正常访问,ping检测网 络,网络正常通知管理员检查服务…

构造函数的用法

c 子类构造函数初始化及父类构造初始化_构造函数对父类进行初始化-CSDN博客

mac docker 安装mysql

在Mac上使用Docker安装MySQL的过程可以分为几个步骤,下面是详细的指南: 步骤1:安装Docker 确保你已经在Mac上安装了Docker。如果还没有安装,你可以访问Docker官网(https://www.docker.com/products/docker-desktop)下载Docker D…

JAVA面试题大全(十三)

1、Mybatis 中 #{}和 ${}的区别是什么? 在 MyBatis 中,#{} 和 ${} 是两种用于参数绑定的方式,它们之间的主要区别在于数据处理的方式和 SQL 注入的风险。 #{}:预编译处理 #{} 用于预编译处理,MyBatis 会为其生成 Prep…