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+pygame简单画板实现代码实例
Dec 13 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
python的中异常处理机制
Aug 30 Python
python 自定义对象的打印方法
Jan 12 Python
python实现接口并发测试脚本
Jun 25 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
pandas如何处理缺失值
Jul 31 Python
详解Python3定时器任务代码
Sep 23 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
python 生成任意形状的凸包图代码
Apr 16 Python
Python turtle实现贪吃蛇游戏
Jun 18 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
如何去掉文章里的 html 语法
2006/10/09 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
多个iframe自动调整大小的问题
2006/09/18 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
python批量生成本地ip地址的方法
2015/03/23 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
用Python写一个自动木马程序
2019/09/17 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
python字典的值可以修改吗
2020/06/29 Python
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
四个太阳教学反思
2014/02/01 职场文书
临床医学专业求职信
2014/08/08 职场文书
机关保密工作承诺书
2015/05/04 职场文书
春季运动会加油词
2015/07/18 职场文书
2019大学生实习报告
2019/06/21 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
什么是css原子化,有什么用?
2022/04/24 HTML / CSS