Numpy内置方法以及numpy.linalg模块可实现矩阵乘法、矩阵分解、矩阵行列式等线性代数的计算。

In [1]: import numpy as np

In [2]: x = np.arange(6,dtype='float').reshape(2,3)
In [3]: x
Out[3]:
array([[0., 1., 2.],
[3., 4., 5.]]) In [4]: y = np.arange(6,dtype='int').reshape(3,2)
In [5]: y
Out[5]:
array([[0, 1],
[2, 3],
[4, 5]]) #x.dot(y)和np.dot(x,y)一样可以实现矩阵点乘
In [6]: x.dot(y)
Out[6]:
array([[10., 13.],
[28., 40.]]) In [7]: np.dot(x,y)
Out[7]:
array([[10., 13.],
[28., 40.]]) In [8]: np.dot(x,np.ones(3))
Out[8]: array([ 3., 12.]) In [10]: np.dot(x,np.ones(3).reshape(3,1))
Out[10]:
array([[ 3.],
[12.]]) In [11]: from numpy.linalg import inv, qr
In [12]: x = np.random.randn(5,5) In [13]: mat = x.T.dot(x)
#inv(arr)实现逆矩阵求解
In [14]: inv(mat)
Out[14]:
array([[ 1.84895223, 0.52000274, -1.6102196 , 0.50430018, 0.85699129],
[ 0.52000274, 0.79958507, -0.6711184 , 0.20499197, 0.5296455 ],
[-1.6102196 , -0.6711184 , 1.94704649, -0.14636372, -1.09774765],
[ 0.50430018, 0.20499197, -0.14636372, 0.9424341 , -0.2083091 ],
[ 0.85699129, 0.5296455 , -1.09774765, -0.2083091 , 1.05277181]])
#矩阵乘以逆矩阵得到单位矩阵
In [15]: mat.dot(inv(mat))
Out[15]:
array([[ 1.00000000e+00, -5.71287376e-16, -4.78160183e-16,
1.36711210e-16, -8.70752759e-17],
[ 1.59513968e-17, 1.00000000e+00, -1.78338097e-17,
-1.27809360e-16, 2.59687796e-16],
[-8.31909138e-16, -1.44352653e-16, 1.00000000e+00,
-8.62450849e-17, 6.01921269e-16],
[-7.90282618e-16, 2.53674571e-16, 6.26183310e-16,
1.00000000e+00, -2.40653733e-16],
[ 4.87373871e-16, -1.53371320e-16, -1.03317523e-15,
1.98732722e-16, 1.00000000e+00]])
#qr(arr)实现矩阵因式分解,r为上三角矩阵,q为标准正交矩阵
In [16]: q,r = qr(mat) In [17]: r
Out[17]:
array([[-4.77016813, -2.7746349 , -3.21063899, 3.73904397, 2.92899001],
[ 0. , -2.55332826, 1.1479357 , 1.56574687, 3.17486777],
[ 0. , 0. , -2.09076931, -1.2290909 , -2.99498757],
[ 0. , 0. , 0. , -0.90346691, 0.07658242],
[ 0. , 0. , 0. , 0. , 0.54459499]]) In [18]: q
Out[18]:
array([[-0.69707745, 0.33427417, 0.18008871, -0.38998806, 0.46671316],
[-0.22653787, -0.80948395, -0.43508171, -0.14464193, 0.28844228],
[-0.47068893, 0.23429759, -0.60319018, 0.04816661, -0.59782786],
[ 0.4092138 , 0.12283144, -0.22844122, -0.86741083, -0.11344409],
[ 0.27158721, 0.40374942, -0.60187057, 0.26882419, 0.57333425]])
#标准正交矩阵乘以其逆矩阵等于单位矩阵
In [19]: q.dot(inv(q))
Out[19]:
array([[ 1.00000000e+00, 8.91951189e-18, 6.81387594e-18,
1.10666298e-17, 1.97034778e-17],
[ 1.51199514e-17, 1.00000000e+00, -1.18531754e-17,
-2.02130063e-17, -2.07169311e-17],
[-1.55111623e-17, 8.77051635e-17, 1.00000000e+00,
6.24561853e-18, 1.54457642e-16],
[ 1.18675764e-16, 5.73913447e-17, -2.96557631e-17,
1.00000000e+00, -1.40072379e-17],
[ 3.59970210e-17, 8.66286674e-17, 2.17131897e-17,
-3.14254018e-17, 1.00000000e+00]]) #求解AX = B 方程,A为方阵
In [20]: A = [[1,1,1],[0,2,5],[2,5,-1]]
In [21]: B = [6,-4,27] In [22]: np.linalg.solve(A,B)
Out[22]: array([ 5., 3., -2.])

numpy.linalg模块常用线性函数方法

官网内容:Linear algebra (numpy.linalg) — NumPy v1.21 Manual

函数方法 定义
diag 以一维数组的形式返回方阵对角线(或非对角线)元素,或将一维数组转换成方阵(非对角线元素为0)
dot 矩阵乘法
trace 计算对角线元素的和
det 计算矩阵行列式
eig 计算方阵的特征值和特征向量
inv 计算方阵的逆方阵
pinv 计算矩阵的Moore-Penrose伪逆
qr 计算QR分解(因式分解),r为上三角矩阵,q为标准正交矩阵
svd 计算奇异值分解(SVD)
solve 解线性方程组:Ax = b,其中 A为一个方阵
lstsq 计算Ax = b的最小乘解

Numpy线性计算的更多相关文章

  1. python安装numpy科学计算模块

    解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found i ...

  2. Numpy科学计算

    NumPy介绍   NumPy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组. NumPy支持常见的数组和矩阵操作.对于同样的数值计算任务,使用Nu ...

  3. Numpy科学计算工具

    Numpy初探 Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组 ...

  4. Numpy科学计算从放弃到入门

    目录 一.什么是Numpy ndarray对象 相关文档 二.如何创建数组 三.如何访问数组 下标索引 切片索引 布尔型索引 整数索引 方形索引 四.如何做算数运算 五.如何使用统计函数 六.数组转置 ...

  5. numpy科学计算库的基础用法,完美抽象多维数组(原创)

    #起别名避免重名 import numpy as np #小技巧:print从外往内看==shape从左往右看 if __name__ == "__main__": print(' ...

  6. python numpy 科学计算通用函数汇总

    import numpy as np #一元函数 #绝对值计算 a = -1b = abs(a)print(b)输出: 1 #开平方计算 a = 4b = np.sqrt(a)print(b)输出: ...

  7. Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结

    NumPy 目录 关于 numpy numpy 库 numpy 基本操作 numpy 复制操作 numpy 计算 numpy 常用函数 1 关于numpy / About numpy NumPy系统是 ...

  8. NumPy(数组计算)

    一.介绍 NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. 1.主要功能 1)ndarray,一个多维数组结构,高效且节省空间2)无需循环对整组数据进行快速运算的数 ...

  9. Numpy数组计算

    NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能 ndarray,一个多维数组结构,高效且节省空间 无需循环对整组数据进行快速运算的数学函数 ...

  10. NumPy之计算两个矩阵的成对平方欧氏距离

    问题描述 设 \({X_{m \times k}} = \left[ {\vec x_1^T;\vec x_2^T; \cdots ;\vec x_m^T} \right]\) (; 表示纵向连接) ...

随机推荐

  1. jstack查看JVM堆栈信息

    目录 介绍 线程状态 Monitor 调用修饰 线程动作 命令格式 常用参数说明 使用实例 jstack pid jstack 查看线程具体在做什么,可看出哪些线程在长时间占用CPU,尽快定位问题和解 ...

  2. 【Azure Function App】Nodejs Function遇见WorkerProcessExitException : node exited with code -1073740791 (0xC0000409) 错误

    问题描述 Nodejs Function,使用Blob Trigger用于处理上传到Storage Blob的文件,但是最近发现偶发报错:Exception while executing funct ...

  3. 2023 年值得一读的技术文章 | NebulaGraph 技术社区

    在之前的产品篇,我们了解到了 NebulaGraph 内核及周边工具在 2023 年经历了什么样的变化.伴随着这些特性的变更和上线,在[文章]博客分类中,一篇篇的博文记录下了这些功能背后的设计思考和研 ...

  4. 在 Spring Boot 3.x 中使用 SpringDoc 2 / Swagger V3

    SpringDoc V1 只支持到 Spring Boot 2.x springdoc-openapi v1.7.0 is the latest Open Source release support ...

  5. Java 关于抽象类匿名子类

    1 package com.bytezreo.abstractTest; 2 3 /** 4 * 5 * @Description Abstract 关键字使用 6 * @author Bytezer ...

  6. git的 .gitignore 配置概述

    git的 .gitignore 配置概述 学习背景:自己在使用git时发现有时会上传很多无用的配置文件,或者在项目中已经包含一个本地的git仓库,导致上一级项目上传总是报错,所以学习采用gitigno ...

  7. deepin平台安装debian的cao蛋时

    我在deepin系统安装别的系统的时候,一直在boot界面无法进行下一步.困扰了我好几天,最后从电脑的左侧换成了电脑的右侧(usb)接口. 终于安装成功.你是......牛(deepin)

  8. 基于Python的子进程获取键盘输入

    一 概念 众所周知,python中的获取键盘输入,input函数是没办法用在子程序的,这就限制了它的用途.想要在子程序中获取键盘输入.唯有 fn=sys.stdin.fileno函数了. 二 实例解析 ...

  9. 专访|3DCAT如何赋能Matterverse打造3A游戏画面的Sandbox

    元宇宙概念自20世纪90年代创造,在21世纪经历20年快速塑形,终于在2021年进入元年,元宇宙概念爆发,受到政府.机构.企业以及网民的高度关注,资本市场一度高涨,相关投资赛道大热. 元宇宙第一股Ro ...

  10. C#通义千问apl

    1.在阿里申请和开通模型服务灵积:链接地址 2.在gitee下载代码:Gitee链接 3.在代码中更换你的API-KEY 4.注意要开通:通义千问/qwen-turbo模型 5.如图所示