返回介绍

概述

文章

用户指南

NumPy 参考手册

其他文档

线性代数(numpy.linalg)

发布于 2023-06-23 19:27:33 字数 7881 浏览 0 评论 0 收藏 0

NumPy线性代数函数依赖于BLAS和LAPACK来提供标准线性代数算法的高效低级实现。 这些库可以由NumPy本身使用其参考实现子集的C版本提供, 但如果可能,最好是利用专用处理器功能的高度优化的库。 这样的库的例子是OpenBLASopen in new window、MKL(TM)和ATLAS。因为这些库是多线程和处理器相关的, 所以可能需要环境变量和外部包(如threadpoolctlopen in new window)来控制线程数量或指定处理器体系结构。

矩阵和向量积

方法描述
dotopen in new window(a, b[, out])两个数组的点积。
linalg.multi_dotopen in new window(arrays)在单个函数调用中计算两个或更多数组的点积,同时自动选择最快的求值顺序。
vdotopen in new window(a, b)返回两个向量的点积。
inneropen in new window(a, b)两个数组的内积。
outeropen in new window(a, b[, out])计算两个向量的外积。
matmulopen in new window(x1, x2, /[, out, casting, order, …])两个数组的矩阵乘积。
tensordotopen in new window(a, b[, axes])沿指定轴计算张量点积。
einsumopen in new window(subscripts, *operands[, out, dtype, …])计算操作数上的爱因斯坦求和约定。
einsum_pathopen in new window(subscripts, *operands[, optimize])通过考虑中间数组的创建,计算einsum表达式的最低成本压缩顺序。
linalg.matrix_poweropen in new window(a, n)将方阵提升为(整数)n次方。
kronopen in new window(a, b)两个数组的Kronecker乘积。

分解

方法描述
linalg.choleskyopen in new window(a)Cholesky分解
linalg.qropen in new window(a[, mode])计算矩阵的QR分解。
linalg.svdopen in new window(a[, full_matrices, compute_uv, …])奇异值分解

矩阵特征值

方法描述
linalg.eigopen in new window(a)计算方阵的特征值和右特征向量。
linalg.eighopen in new window(a[, UPLO])返回复数Hermitian(共轭对称)或实对称矩阵的特征值和特征向量。
linalg.eigvalsopen in new window(a)计算通用矩阵的特征值。
linalg.eigvalshopen in new window(a[, UPLO])计算复杂的Hermitian或实对称矩阵的特征值。

范数和其他数字

方法描述
linalg.normopen in new window(x[, ord, axis, keepdims])矩阵或向量范数。
linalg.condopen in new window(x[, p])计算矩阵的条件数。
linalg.detopen in new window(a)计算数组的行列式。
linalg.matrix_rankopen in new window(M[, tol, hermitian])使用SVD方法返回数组的矩阵的rank
linalg.slogdetopen in new window(a)计算数组行列式的符号和(自然)对数。
traceopen in new window(a[, offset, axis1, axis2, dtype, out])返回数组对角线的和。

解方程和逆矩阵

方法描述
linalg.solveopen in new window(a, b)求解线性矩阵方程或线性标量方程组。
linalg.tensorsolveopen in new window(a, b[, axes])对x求解张量方程a x = b。
linalg.lstsqopen in new window(a, b[, rcond])返回线性矩阵方程的最小二乘解。
linalg.invopen in new window(a)计算矩阵的(乘法)逆。
linalg.pinvopen in new window(a[, rcond, hermitian])计算矩阵的(Moore-Penrose)伪逆。
linalg.tensorinvopen in new window(a[, ind])计算N维数组的“逆”。

例外

方法描述
linalg.LinAlgErroropen in new window泛型Python-linalg函数引发的异常派生对象。

一次在多个矩阵上的线性代数

1.8.0版中的新功能

上面列出的几个线性代数例程能够一次计算几个矩阵的结果,如果它们堆叠在同一数组中的话。

这在文档中通过输入参数规范(如 a : (..., M, M) array_like )表示。 这意味着,例如,如果给定输入数组 a.shape == (N, M, M) ,则将其解释为N个矩阵的“堆栈”, 每个矩阵的大小为M×M。类似的规范也适用于返回值, 例如行列式 det : (...) 。并且在这种情况下将返回形状 det(a).shape == (N,) 的数组。 这推广到对高维数组的线性代数操作:多维数组的最后1或2维被解释为向量或矩阵,视每个操作而定。

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

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

发布评论

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