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在Windows8下获取本机ip地址的方法
Mar 14 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
tensorflow识别自己手写数字
Mar 14 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 Python
mac系统下Redis安装和使用步骤详解
Jul 09 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 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
JS实现php的伪分页
2008/05/25 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
axios简单实现小程序延时loading指示
2018/07/30 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Python全排列操作实例分析
2018/07/24 Python
python得到电脑的开机时间方法
2018/10/15 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
一个SQL面试题
2014/08/21 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL