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基础之函数用法实例详解
Sep 10 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
EM算法的python实现的方法步骤
Jan 02 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
python TKinter获取文本框内容的方法
Oct 11 Python
python多个模块py文件的数据共享实例
Jan 11 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
pycharm工具连接mysql数据库失败问题
Apr 01 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
Python项目实战之使用Django框架实现支付宝付款功能
Feb 23 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实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python 反向输出字符串的方法
2018/07/16 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
python re的findall和finditer的区别详解
2020/11/15 Python
python 将Excel转Word的示例
2021/03/02 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
便利店投资创业计划书
2014/02/08 职场文书
社区消防工作实施方案
2014/03/21 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL