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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
Django Admin实现上传图片校验功能
Mar 06 Python
Python随机数random模块使用指南
Sep 09 Python
python实现用户答题功能
Jan 17 Python
python批量复制图片到另一个文件夹
Sep 17 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
Python依赖包整体迁移方法详解
Aug 15 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
OpenCV 图像梯度的实现方法
Jul 25 Python
分享7个 Python 实战项目练习
Mar 03 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
用Python中的字典来处理索引统计的方法
2015/05/05 Python
python字符串的常用操作方法小结
2016/05/21 Python
Python中super()函数简介及用法分享
2016/07/11 Python
Python类的动态修改的实例方法
2017/03/24 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
python实现自动发送报警监控邮件
2018/06/21 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
python机器人运动范围问题的解答
2019/04/29 Python
python 实现性别识别
2020/11/21 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
一套软件测试笔试题
2014/07/25 面试题
公司出纳岗位职责
2013/12/07 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
看上去很美观后感
2015/06/10 职场文书