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 相关文章推荐
动态创建类实例代码
Oct 07 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
python实现多线程抓取知乎用户
Dec 12 Python
Python使用jsonpath-rw模块处理Json对象操作示例
Jul 31 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
Python常用库大全及简要说明
Jan 17 Python
解决python使用list()时总是报错的问题
May 05 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
python 装饰器的实际作用有哪些
Sep 07 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
python实现三阶魔方还原的示例代码
Apr 28 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
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
详解自动生成博客目录案例
2016/12/09 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python 搜索大文件的实例代码
2019/07/08 Python
python之yield和Generator深入解析
2019/09/18 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
python 8种必备的gui库
2020/08/27 Python
python PIL模块的基本使用
2020/09/29 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
党员活动日总结
2014/05/05 职场文书
校园广播稿100字
2014/10/06 职场文书
会计专业自荐信范文
2015/03/05 职场文书