返回介绍

线性代数

发布于 2024-05-19 17:57:06 字数 4524 浏览 0 评论 0 收藏 0

1. 转置

numpy.transpose(a,axes=None) :获取 a 的转置(一个 array-like 对象)。其中 axes 是一个整数列表,指定交换轴。如果 axes 未指定,则默认翻转维度。

transpose

2. 逆矩阵

numpy.linalg.inv(a) :获取 a 的逆矩阵(一个 array-like 对象)。

  • 如果传入的是多个矩阵,则依次计算这些矩阵的逆矩阵。
  • 如果 a 不是方阵,或者 a 不可逆则抛出异常

    transpose

3. 单位矩阵

numpy.eye(N[, M, k, dtype]) :返回一个二维单位矩阵行为 N ,列为 M ,对角线元素为 1,其余元素为 0。 M 默认等于 Nk 默认为 0 表示对角线元素为 1(单位矩阵),如为正数则表示对角线上方一格的元素为 1(上单位矩阵),如为负数表示对角线下方一格的元素为 1(下单位矩阵)

4. 点积

numpy.dot(a, b, out=None) :计算两个 array-like 对象的点乘。

  • 如果是二维矩阵,则点乘就是代数上的矩阵乘法
  • 如果是一维向量,则点乘就是向量的内积
  • 如果是标量,则点乘就是普通乘法
  • 如果是 N 维数组,则是 a 的最后一个轴与 b 的次最后轴之间的乘积和

    dot

5. 向量点积

numpy.vdot(a, b) :返回一维向量之间的点积。如果 ab 是多维数组,则展平成一维再点积。

vdot

6. 向量外积

numpy.outer(a, b, out=None) :返回一维向量之间的外积。如果 ab 是多维数组,则展平成一维再外积。 假设 a = [a0, a1, ..., a_M]b = [b0, b1, ..., b_N] ,则外积为:

 [
  [a0*b0  a0*b1 ... a0*b_N ]
  [a1*b0    .
  [ ...          .
  [a_M*b0            a_M*b_N ]
 ]

outer

7. 叉乘

numpy.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None) :计算两个向量之间的叉乘。叉积用于判断两个三维空间的向量是否垂直。要求 ab 都是二维向量或者三维向量,否则抛出异常。(当然他们也可以是二维向量的数组,或者三维向量的数组,此时一一叉乘)

cross

8. 对角线和

numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None) :返回对角线的和。如果 a 是二维的,则直接选取对角线的元素之和( offsert=0 ),或者对角线右侧偏移 offset 的元素之和

即选取 a[i,i+offset] 之和

  • 如果 a 不止二维,则由 axis1axis2 指定的轴选取了取对角线的矩阵。
  • 如果 a 少于二维,则抛出异常

    trace

9. 计算线性方程的解 Ax=b

numpy.linalg.solve(a,b) :计算线性方程的解 ax=b ,其中 a 为矩阵,要求为秩不为 0 的方阵, b 为列向量(大小等于方阵大小);或者 a 为标量, b 也为标量。

如果 a 不是方阵或者 a 是方阵但是行列式为 0,则抛出异常

solve

10. 特征值

numpy.linalg.eig(a) :计算矩阵的特征值和右特征向量。如果不是方阵则抛出异常,如果行列式为 0 则抛出异常。

eig

11. 奇异值分解

numpy.linalg.svd(a, full_matrices=1, compute_uv=1) :对矩阵 a 进行奇异值分解,将它分解成 u*np.diag(s)*v 的形式,其中 uv 是酉矩阵, sa 的奇异值组成的一维数组。 其中:

  • full_matrics :如果为 True ,则 u 形状为 (M,M)v 形状为 (N,N) ;否则 u 形状为 (M,K)v 形状为 (K,N)K=min(M,N)
  • compute_uv :如果为 True 则表示要计算 uv 。默认为 True
  • 返回 usv 的元组
  • 如果不可分解则抛出异常

    svd

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文