Python中Numpy mat的使用详解


Posted in Python onMay 24, 2019

前面介绍过用dnarray来模拟,但mat更符合矩阵,这里的mat与Matlab中的很相似。(mat与matrix等同)

基本操作

>>> m= np.mat([1,2,3]) #创建矩阵
>>> m
matrix([[1, 2, 3]])

>>> m[0]        #取一行
matrix([[1, 2, 3]])
>>> m[0,1]       #第一行,第2个数据
2
>>> m[0][1]       #注意不能像数组那样取值了
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
  out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1

#将Python的列表转换成NumPy的矩阵
>>> list=[1,2,3]
>>> mat(list)
matrix([[1, 2, 3]])

#Numpy dnarray转换成Numpy矩阵
>>> n = np.array([1,2,3])
>>> n
array([1, 2, 3])
>>> np.mat(n)
matrix([[1, 2, 3]])

#排序
>>> m=np.mat([[2,5,1],[4,6,2]])  #创建2行3列矩阵
>>> m
matrix([[2, 5, 1],
    [4, 6, 2]])
>>> m.sort()          #对每一行进行排序
>>> m
matrix([[1, 2, 5],
    [2, 4, 6]])

>>> m.shape           #获得矩阵的行列数
(2, 3)
>>> m.shape[0]         #获得矩阵的行数
2
>>> m.shape[1]         #获得矩阵的列数
3

#索引取值
>>> m[1,:]           #取得第一行的所有元素
matrix([[2, 4, 6]])
>>> m[1,0:1]          #第一行第0个元素,注意左闭右开
matrix([[2]])
>>> m[1,0:3]
matrix([[2, 4, 6]])
>>> m[1,0:2]
matrix([[2, 4]])

矩阵求逆、行列式

与Numpy array相同,可参考链接。

矩阵乘法

矩阵乘,与Numpy dnarray类似,可以使用np.dot()和np.matmul(),除此之外,由于matrix中重载了“*”,因此“*”也能用于矩阵乘。

>>> a = np.mat([[1,2,3], [2,3,4]])
>>> b = np.mat([[1,2], [3,4], [5,6]])
>>> a
matrix([[1, 2, 3],
    [2, 3, 4]])
>>> b
matrix([[1, 2],
    [3, 4],
    [5, 6]])
>>> a * b     #方法一
matrix([[22, 28],
    [31, 40]])
>>> np.matmul(a, b)  #方法二
matrix([[22, 28],
    [31, 40]])
>>> np.dot(a, b)   #方法三
matrix([[22, 28],
    [31, 40]])

点乘,只剩下multiply方法了。

>>> a = np.mat([[1,2], [3,4]])
>>> b = np.mat([[2,2], [3,3]])
>>> np.multiply(a, b)
matrix([[ 2, 4],
    [ 9, 12]])

矩阵转置

转置有两种方法:

>>> a
matrix([[1, 2],
    [3, 4]])
>>> a.T      #方法一,ndarray也行
matrix([[1, 3],
    [2, 4]])
>>> np.transpose(a)  #方法二
matrix([[1, 3],
    [2, 4]])

值得一提的是,matrix中求逆还有一种简便方法(ndarray中不行):

>>> a
matrix([[1, 2],
    [3, 4]])
>>> a.I
matrix([[-2. , 1. ],
    [ 1.5, -0.5]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
python实现根据窗口标题调用窗口的方法
Mar 13 Python
Python对文件操作知识汇总
May 15 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
Django app配置多个数据库代码实例
Dec 17 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
django正续或者倒序查库实例
May 19 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
Python中Numpy ndarray的使用详解
May 24 #Python
numpy数组之存取文件的实现示例
May 24 #Python
Python实现使用request模块下载图片demo示例
May 24 #Python
Python实现操纵控制windows注册表的方法分析
May 24 #Python
Django框架会话技术实例分析【Cookie与Session】
May 24 #Python
Django框架中间件(Middleware)用法实例分析
May 24 #Python
python与字符编码问题
May 24 #Python
You might like
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
详解jQuery选择器
2016/12/21 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
python运行时间的几种方法
2016/06/17 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
PyQt5实现简易计算器
2020/05/30 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
python颜色随机生成器的实例代码
2020/01/10 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
成功的餐厅经营创业计划书
2014/01/15 职场文书
学生打架检讨书
2014/02/14 职场文书
共青团员自我评价范文
2014/09/14 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
python中redis包操作数据库的教程
2022/04/19 Python