Python 执行矩阵与线性代数运算


Posted in Python onAugust 01, 2020

问题

你需要执行矩阵和线性代数运算,比如矩阵乘法、寻找行列式、求解线性方程组等等。

解决方案

NumPy 库有一个矩阵对象可以用来解决这个问题。
矩阵类似于3.9小节中数组对象,但是遵循线性代数的计算规则。下面的一个例子展示了矩阵的一些基本特性:

>>> import numpy as np
>>> m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]])
>>> m
matrix([[ 1, -2, 3],
    [ 0, 4, 5],
    [ 7, 8, -9]])

>>> # Return transpose
>>> m.T
matrix([[ 1, 0, 7],
    [-2, 4, 8],
    [ 3, 5, -9]])

>>> # Return inverse
>>> m.I
matrix([[ 0.33043478, -0.02608696, 0.09565217],
    [-0.15217391, 0.13043478, 0.02173913],
    [ 0.12173913, 0.09565217, -0.0173913 ]])

>>> # Create a vector and multiply
>>> v = np.matrix([[2],[3],[4]])
>>> v
matrix([[2],
    [3],
    [4]])
>>> m * v
matrix([[ 8],
    [32],
    [ 2]])
>>>

可以在 numpy.linalg 子包中找到更多的操作函数,比如:

>>> import numpy.linalg

>>> # Determinant
>>> numpy.linalg.det(m)
-229.99999999999983

>>> # Eigenvalues
>>> numpy.linalg.eigvals(m)
array([-13.11474312, 2.75956154, 6.35518158])

>>> # Solve for x in mx = v
>>> x = numpy.linalg.solve(m, v)
>>> x
matrix([[ 0.96521739],
    [ 0.17391304],
    [ 0.46086957]])
>>> m * x
matrix([[ 2.],
    [ 3.],
    [ 4.]])
>>> v
matrix([[2],
    [3],
    [4]])
>>>

讨论

很显然线性代数是个非常大的主题,已经超出了本书能讨论的范围。 但是,如果你需要操作数组和向量的话, NumPy 是一个不错的入口点。 可以访问 NumPy 官网 http://www.numpy.org 获取更多信息。

以上就是Python 执行矩阵与线性代数运算的详细内容,更多关于Python 矩阵与线性代数运算的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现的一个火车票转让信息采集器
Jul 09 Python
Python中input与raw_input 之间的比较
Aug 20 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Windows下python3.6.4安装教程
Jul 31 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
pandas的相关系数与协方差实例
Dec 27 Python
Python基于xlutils修改表格内容过程解析
Jul 28 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 Python
Python编程super应用场景及示例解析
Oct 05 Python
Python实现数字的格式化输出
Aug 01 #Python
Python实现一个简单的递归下降分析器
Aug 01 #Python
Python 如何在字符串中插入变量
Aug 01 #Python
Python打印不合法的文件名
Jul 31 #Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 #Python
Python 如何测试文件是否存在
Jul 31 #Python
Python高并发解决方案实现过程详解
Jul 31 #Python
You might like
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
快速配置PHPMyAdmin方法
2008/06/05 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
python检测服务器是否正常
2014/02/16 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
请解释接口的显式实现有什么意义
2012/05/26 面试题
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
信用卡工作证明模板
2014/09/14 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
小学教师见习总结
2015/06/23 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书