python numpy中mat和matrix的区别
个人理解:
np.mat()
importnumpyasnp
b=np.mat(a)是将a转化为矩阵
如果a本身是矩阵,就是创建a的一个引用,相当于:np.matrix(a,copy=False)
无论a和b哪一个发生改变都会影响矩阵本身。
如果a不是矩阵,此时b就是a转化成矩阵的结果,是在原有的基础上进行copy().
np.matrix()
单纯的是创建一个矩阵。
补充:python中numpy模块下函数array()和mat()的区别
1.mat()函数与array()函数生成矩阵所需的数据格式有区别
(1)mat()函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割。而array()函数中数据只能为后者形式。
如mat()函数生成矩阵时一下两种方式都正确。
(2)而array()函数生成矩阵时数据只能为列表形式。
2.mat()函数与array()函数生成的矩阵计算方式不同
(1)mat()函数中矩阵的乘积可以使用(星号)*或.dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。
(2)array()函数中矩阵的乘积只能使用.dot()函数。而星号乘(*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。
如生成以下矩阵:
a=numpy.mat([[1,3],[5,7]]) b=numpy.mat([[2,4],[6,8]]) c=numpy.array([[1,3],[5,7]]) d=numpy.array([[2,4],[6,8]])
则a*b=a.dot(b)=c.dot(d),其表示矩阵相乘。
而numpy.multiply(a,b)=c*d=numpy.multiply(c,d),其表示矩阵对应位置元素相乘。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。