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局域网ip扫描示例分享
Apr 03 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
教你用Python创建微信聊天机器人
Mar 31 Python
python 切换root 执行命令的方法
Jan 19 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
Feb 12 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
python 瀑布线指标编写实例
Jun 03 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 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实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
php命令行模式代码实例详解
2021/02/26 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python基础之函数用法实例详解
2014/09/10 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python3跳出一个循环的实例操作
2020/08/18 Python
Pandas之缺失数据的实现
2021/01/06 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
zooplus意大利:在线宠物商店
2019/08/07 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
主办会计岗位职责
2014/03/13 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
高中综合实践活动总结
2014/07/07 职场文书
合作协议书范文
2014/08/20 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书