机器学习之numpy基础——线性代数,不要太简单哦

简介: 机器学习之numpy基础——线性代数,不要太简单哦

大学的记忆

       理工科的小伙伴们都还记得吧,线性代数是大学里逃不掉的课程,今天我们就聊聊numpy中与线性代数相关的模块。

       线性代数是数学的一个重要分支。同时它也是机器学习和深度学习的关键组成部分,有些算法的理论,要借助线性代数的相关概念来阐述,某些算法的结论也要通过线性代数的推演来获得。而且几乎所有的机器学习和深度学习的运算都是通过线性代数来实现的。可见线性代数在人工智能领域是多么的重要。

       numpy中与线性代数相关的运算有很多,我们这里介绍一些较为重要的运算,放心,这些运算在numpy的领地都非常简洁!

linalg模块

1.计算逆矩阵

       在线性代数中,矩阵 与其逆矩阵 相乘后会得到一个单位矩阵 。该定义可以写为 。numpy.linalg 模块中的inv函数可以计算逆矩阵。

如果输入矩阵是奇异的或非方阵,则会抛出LinAlgError异常。

2.求解线性方程组

       矩阵可以对向量进行线性变换,这对应于数学中的线性方程组。numpy.linalg中的函数solve可以求解形如 Ax = b 的线性方程组,其中 A 为系数矩阵,b 为一维或二维的常量数组,x 是未知变量。

3.求解特征值和特征向量

       特征值(eigenvalue)即方程 Ax = ax 的根,是一个标量。其中,A 是一个二维矩阵,x 是一个一维向量。特征向量(eigenvector)是关于特征值的向量。在numpy.linalg模块中,eigvals函数可以计算矩阵的特征值,而eig函数可以返回一个包含特征值和对应的特征向量的元组。

4.奇异值分解

       SVD(Singular Value Decomposition,奇异值分解)是一种因子分解运算,将一个矩阵分解

为3个矩阵的乘积。奇异值分解是前面讨论过的特征值分解的一种推广。在numpy.linalg模块中的svd函数可以对矩阵进行奇异值分解。该函数返回3个矩阵——U、Sigma和V,其中U和V是正交矩阵,Sigma包含输入矩阵的奇异值。

星号表示厄米共轭(Hermitian conjugate)或共轭转置(conjugate transpose)。

5.广义逆矩阵

在numpy.linalg模块中的pinv函数可以求矩阵的广义逆矩阵。

6.行列式

       行列式(determinant)是与方阵相关的一个标量值,在数学中得到广泛应用。对于一个n×n的实数矩阵,行列式描述的是一个线性变换对“有向体积”所造成的影响。行列式的值为正表示保持了空间的定向(顺时针或逆时针),为负则表示颠倒了空间的定向。numpy.linalg模块中的det函数可以计算矩阵的行列式。

fft模块

1.快速傅里叶变换

       在NumPy中,有一个名为fft的模块提供了快速傅里叶变换的功能。在这个模块中,许多函数都是成对存在的,也就是说许多函数存在对应的逆操作函数。例如,fft和ifft函数就是其中的一对。

连续分布和离散分布

1.超几何分布

       超几何分布(hypergeometric distribution)是一种离散概率分布,它描述的是一个罐子里有

两种物件,无放回地从中抽取指定数量的物件后,抽出指定种类物件的数量。

2.正态分布

       随机数可以从正态分布中产生,它们的直方图能够直观地刻画正态分布。

3.对数正态分布

       对数正态分布(lognormal distribution) 是自然对数服从正态分布的任意随机变量的概率分布。

 

作者这水平有限,有不足之处欢迎留言指正

相关文章
|
1月前
|
机器学习/深度学习 算法 数据挖掘
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧1
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
51 5
|
1月前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
39 1
|
2月前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 7
NumPy 的 `linalg` 库提供了丰富的线性代数功能,如点积、矩阵乘法、求解线性方程等。`numpy.linalg.inv()` 用于计算矩阵的乘法逆矩阵,即找到满足 `AB=BA=E` 的矩阵 `B`,其中 `E` 是单位矩阵。示例展示了如何对矩阵 `A` 计算其逆矩阵 `A^(-1)` 并求解线性方程 `A^(-1)B`,得到向量 `[5, 3, -2]` 作为解。
48 10
|
2月前
|
索引 Python
NumPy 教程 之 NumPy 线性代数 4
NumPy 的线性代数库 `linalg` 提供了丰富的线性代数功能,如点积(`dot`)、向量点积(`vdot`)、内积(`inner`)、矩阵积(`matmul`)、行列式(`determinant`)、求解线性方程(`solve`)和矩阵逆(`inv`)。其中,`numpy.matmul` 用于计算两个数组的矩阵乘积,支持多维数组操作。
36 11
|
2月前
|
Python
NumPy 教程 之 NumPy 线性代数 6
NumPy 的 `linalg` 库提供了多种线性代数功能,如 `dot`(点积)、`vdot`(向量点积)、`inner`(内积)、`matmul`(矩阵积)、`determinant`(行列式)、`solve`(求解线性方程)和 `inv`(计算逆矩阵)。`numpy.linalg.solve()` 可用于求解线性方程组,例如将方程组 `x + y + z = 6`、`2y + 5z = -4` 和 `2x + 5y - z = 27` 转换为矩阵形式 `AX = B` 并求解。
28 4
|
2月前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 2
NumPy 的线性代数函数库 `linalg` 提供了丰富的线性代数功能,如 `dot`、`vdot`、`inner`、`matmul`、`determinant`、`solve` 和 `inv` 等。示例展示了 `numpy.vdot()` 函数计算两个数组的点积,即使参数是多维数组也会被展开进行计算。
23 6
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
NumPy 与机器学习框架的集成
【8月更文第30天】NumPy 是 Python 中用于科学计算的核心库之一,它提供了高效的多维数组对象,以及用于操作数组的大量函数。NumPy 的高效性和灵活性使其成为许多机器学习框架的基础。本文将探讨 NumPy 如何与 TensorFlow 和 PyTorch 等流行机器学习框架协同工作,并通过具体的代码示例来展示它们之间的交互。
56 0
|
3月前
|
机器学习/深度学习 Serverless 数据处理
《零基础实践深度学习》 Numpy 线性代数 应用举例 张量表示
这篇文章介绍了NumPy在线性代数中的应用,包括矩阵操作和文件读写功能,并提供了使用NumPy进行图片处理和激活函数计算的示例,同时探讨了飞桨框架中张量(Tensor)的使用和与NumPy数组的转换。
|
4月前
|
机器学习/深度学习 数据采集 大数据
驾驭大数据洪流:Pandas与NumPy在高效数据处理与机器学习中的核心作用
【7月更文挑战第13天】在大数据时代,Pandas与NumPy是Python数据分析的核心,用于处理复杂数据集。在一个电商销售数据案例中,首先使用Pandas的`read_csv`加载CSV数据,通过`head`和`describe`进行初步探索。接着,数据清洗涉及填充缺失值和删除异常数据。然后,利用`groupby`和`aggregate`分析销售趋势,并用Matplotlib可视化结果。在机器学习预处理阶段,借助NumPy进行数组操作,如特征缩放。Pandas的数据操作便捷性与NumPy的数值计算效率,共同助力高效的数据分析和建模。
89 3
|
4月前
|
机器学习/深度学习 数据采集 数据处理
重构数据处理流程:Pandas与NumPy高级特性在机器学习前的优化
【7月更文挑战第14天】在数据科学中,Pandas和NumPy是数据处理的关键,用于清洗、转换和计算。用`pip install pandas numpy`安装后,Pandas的`read_csv`读取数据,`fillna`处理缺失值,`drop`删除列。Pandas的`apply`、`groupby`和`merge`执行复杂转换。NumPy加速数值计算,如`square`进行向量化操作,`dot`做矩阵乘法。结合两者优化数据预处理,提升模型训练效率和效果。
62 1