個(gè)人理解:
np.mat()
b=np.mat(a)
是將a轉(zhuǎn)化為矩陣
如果a本身是矩陣,就是創(chuàng)建a的一個(gè)引用,相當(dāng)于:np.matrix(a,copy=False)
無(wú)論a和b哪一個(gè)發(fā)生改變都會(huì)影響矩陣本身。
如果a不是矩陣,此時(shí)b就是a轉(zhuǎn)化成矩陣的結(jié)果,是在原有的基礎(chǔ)上進(jìn)行copy().
np.matrix()
單純的是創(chuàng)建一個(gè)矩陣。
補(bǔ)充:python中numpy模塊下函數(shù)array()和mat()的區(qū)別
1. mat()函數(shù)與array()函數(shù)生成矩陣所需的數(shù)據(jù)格式有區(qū)別
(1) mat()函數(shù)中數(shù)據(jù)可以為字符串以分號(hào)(;)分割,或者為列表形式以逗號(hào)(,)分割。而array()函數(shù)中數(shù)據(jù)只能為后者形式。
如mat()函數(shù)生成矩陣時(shí)一下兩種方式都正確。
(2) 而array()函數(shù)生成矩陣時(shí)數(shù)據(jù)只能為列表形式。
2. mat()函數(shù)與array()函數(shù)生成的矩陣計(jì)算方式不同
(1) mat()函數(shù)中矩陣的乘積可以使用(星號(hào)) * 或 .dot()函數(shù),其結(jié)果相同。而矩陣對(duì)應(yīng)位置元素相乘需調(diào)用numpy.multiply()函數(shù)。
(2) array()函數(shù)中矩陣的乘積只能使用 .dot()函數(shù)。而星號(hào)乘 (*)則表示矩陣對(duì)應(yīng)位置元素相乘,與numpy.multiply()函數(shù)結(jié)果相同。
如生成以下矩陣:
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)
,其表示矩陣對(duì)應(yīng)位置元素相乘。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Python基礎(chǔ)之numpy庫(kù)的使用
- Python利用numpy實(shí)現(xiàn)三層神經(jīng)網(wǎng)絡(luò)的示例代碼
- Python數(shù)據(jù)清洗工具之Numpy的基本操作
- python numpy中setdiff1d的用法說(shuō)明
- Python Numpy之linspace用法說(shuō)明
- python使用NumPy文件的讀寫操作
- python3 numpy中數(shù)組相乘np.dot(a,b)運(yùn)算的規(guī)則說(shuō)明
- python 將numpy維度不同的數(shù)組相加相乘操作
- python numpy.power()數(shù)組元素求n次方案例
- Python numpy.power()函數(shù)使用說(shuō)明
- Python 用NumPy創(chuàng)建二維數(shù)組的案例
- Python基礎(chǔ)之Numpy的基本用法詳解