• Lesson19——NumPy 线性代数


     NumPy 教程目录 

    线性代数(numpy.linalg

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

    矩阵和向量积

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

    分解

    方法描述
    linalg.cholesky(a) Cholesky分解
    linalg.qr(a[, mode]) 计算矩阵的QR分解。
    linalg.svd(a[, full_matrices, compute_uv, …]) 奇异值分解

    矩阵特征值

    方法描述
    linalg.eig(a) 计算方阵的特征值和右特征向量。
    linalg.eigh(a[, UPLO]) 返回复数Hermitian(共轭对称)或实对称矩阵的特征值和特征向量。
    linalg.eigvals(a) 计算通用矩阵的特征值。
    linalg.eigvalsh(a[, UPLO]) 计算复杂的Hermitian或实对称矩阵的特征值。

    范数和其他数字

    方法描述
    linalg.norm(x[, ord, axis, keepdims]) 矩阵或向量范数。
    linalg.cond(x[, p]) 计算矩阵的条件数。
    linalg.det(a) 计算数组的行列式。
    linalg.matrix_rank(M[, tol, hermitian]) 使用SVD方法返回数组的矩阵的rank
    linalg.slogdet(a) 计算数组行列式的符号和(自然)对数。
    trace(a[, offset, axis1, axis2, dtype, out]) 返回数组对角线的和。

    解方程和逆矩阵

    方法描述
    linalg.solve(a, b) 求解线性矩阵方程或线性标量方程组。
    linalg.tensorsolve(a, b[, axes]) 对x求解张量方程a x = b。
    linalg.lstsq(a, b[, rcond]) 返回线性矩阵方程的最小二乘解。
    linalg.inv(a) 计算矩阵的(乘法)逆。
    linalg.pinv(a[, rcond, hermitian]) 计算矩阵的(Moore-Penrose)伪逆。
    linalg.tensorinv(a[, ind]) 计算N维数组的“逆”。

    例外

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

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

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

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

  • 相关阅读:
    Docker 使用笔记 (一)
    oracle 截取字符(substr),检索字符位置(instr)
    oracle表空间配额(quota)与UNLIMITED TABLESPACE系统权限
    把大象放到eclipse分几步?
    hadoop -- 搭建集群小工具
    1. Mybatis简单操作
    SpringMVC --- 拦截器 HandlerInterceptor
    Spring MVC --- 异步请求
    Spring MVC--RequestMapping
    Spring MVC 异常控制
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/15922601.html
Copyright © 2020-2023  润新知