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 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Python对象的深拷贝和浅拷贝详解
Aug 25 Python
举例讲解Python中is和id的用法
Apr 03 Python
Python运算符重载用法实例分析
Jun 01 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
Python爬豆瓣电影实例
Feb 23 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
wxPython实现分隔窗口
Nov 19 Python
Python基于正则表达式实现计算器功能
Jul 13 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 常用类汇总 推荐收藏
2010/05/13 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
初学Python实用技巧两则
2014/08/29 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python能做哪些生活有趣的事情
2020/09/09 Python
numpy实现RNN原理实现
2021/03/02 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
公司委托书格式范文
2014/04/04 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
市场推广策划方案
2014/06/02 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
大学生社会实践感想
2015/08/11 职场文书
导游词之河北白洋淀
2020/01/15 职场文书