成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python中數(shù)組和矩陣乘法怎么用-創(chuàng)新互聯(lián)

這篇文章主要介紹python中數(shù)組和矩陣乘法怎么用,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供徽州網(wǎng)站建設(shè)、徽州做網(wǎng)站、徽州網(wǎng)站設(shè)計(jì)、徽州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、徽州企業(yè)網(wǎng)站模板建站服務(wù),10多年徽州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

Matrix是Array的一個小的分支,包含于Array。所以matrix 擁有array的所有特性。

但在數(shù)組乘和矩陣乘時,兩者各有不同,如果a和b是兩個matrices,那么a*b,就是矩陣積

如果a,b是數(shù)組的話,則a*b是數(shù)組的運(yùn)算

1.對數(shù)組的操作

>>> import numpy as np
>>> a=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a
array([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
>>> b=a.copy()
>>> b
array([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
>>> a+b#多維數(shù)組的加減,按對應(yīng)位置操作
array([[ 2, 4, 6],
    [ 8, 10, 12],
    [14, 16, 18]])
>>> a*3#多維數(shù)組乘常數(shù),則對數(shù)組中每一個元素乘該常數(shù)
array([[ 3, 6, 9],
    [12, 15, 18],
    [21, 24, 27]])
>>> np.dot(a,b)#數(shù)組的點(diǎn)乘運(yùn)算通過np.dot(a,b)來實(shí)現(xiàn),相當(dāng)于矩陣乘
array([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> c=np.array([1,2,3])#構(gòu)造一行三列的數(shù)組
>>> c
array([1, 2, 3])
>>> c*a#c為一行三列,放于數(shù)組a之前,則對數(shù)組a中每行對應(yīng)位置相乘
array([[ 1, 4, 9],
    [ 4, 10, 18],
    [ 7, 16, 27]])
>>> a*c#c為一行三列,放于數(shù)組a之后,依舊是對數(shù)組a中每行對應(yīng)位置相乘
array([[ 1, 4, 9],
    [ 4, 10, 18],
    [ 7, 16, 27]])
>>> #如果想要矩陣運(yùn)算,則需要np.dot()函數(shù)
>>> np.dot(c,a)#c為一行三列,放于數(shù)組a之前,按正常矩陣方式運(yùn)算
array([30, 36, 42])
>>> np.dot(a,c)#c為一行三列,放于數(shù)組a之后,相當(dāng)于矩陣a乘以3行一列的c矩陣,返回結(jié)果值不變,格式為1行3列
array([14, 32, 50])
>>> #將c改為多行一列的形式
>>> d=c.reshape(3,1)
>>> d
array([[1],
    [2],
    [3]])
>>> #
>>> np.dot(a,d)#值與np.dot(a,c)一致,但格式以改變?yōu)?行1列
array([[14],
    [32],
    [50]])
 
>>> a*a#數(shù)組使用*的運(yùn)算其結(jié)果屬于數(shù)組運(yùn)算,對應(yīng)位置元素之間的運(yùn)算
array([[ 1, 4, 9],
    [16, 25, 36],
    [49, 64, 81]])
>>> #但是不能更改a,d點(diǎn)乘的位置,不符合矩陣運(yùn)算格式
>>> np.dot(d,a)
Traceback (most recent call last):
 File "<pyshell#28>", line 1, in <module>
  np.dot(d,a)
ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0)

對于數(shù)組的轉(zhuǎn)置,求逆,求跡運(yùn)算請參考上篇文章

2.對矩陣的操作

>>> a=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a=np.mat(a)
>>> a
matrix([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
>>> b=a
>>> b
matrix([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
>>> a+b#矩陣的加減運(yùn)算和數(shù)組運(yùn)算一致
matrix([[ 2, 4, 6],
    [ 8, 10, 12],
    [14, 16, 18]])
>>> a-b
matrix([[0, 0, 0],
    [0, 0, 0],
    [0, 0, 0]])
>>> a*b#矩陣的乘用*即可表示
matrix([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> np.dot(a,b)#與*一致
matrix([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> b*a
matrix([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> np.dot(b,a)
matrix([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> c=np.array([1,2,3])#構(gòu)造一行三列數(shù)組
>>> c
array([1, 2, 3])
>>> c*a#矩陣運(yùn)算
matrix([[30, 36, 42]])
>>> a*c#不合矩陣規(guī)則
Traceback (most recent call last):
 File "<pyshell#63>", line 1, in <module>
  a*c
 File "F:\python3\anzhuang\lib\site-packages\numpy\matrixlib\defmatrix.py", line 309, in __mul__
  return N.dot(self, asmatrix(other))
ValueError: shapes (3,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
>>> np.dot(c,a)#和矩陣運(yùn)算一致
matrix([[30, 36, 42]])
>>> np.dot(a,c)#自動將a轉(zhuǎn)換成3行1列參與運(yùn)算,返回結(jié)果格式已經(jīng)變?yōu)?行3列而非3行一列的矩陣
matrix([[14, 32, 50]])
>>> c=c.reshape(3,1)
>>> c
array([[1],
    [2],
    [3]])
>>> a*c#和矩陣運(yùn)算一致
matrix([[14],
    [32],
    [50]])
>>> c*a#不合矩陣運(yùn)算格式
Traceback (most recent call last):
 File "<pyshell#71>", line 1, in <module>
  c*a 
ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0)

矩陣運(yùn)算的另一個好處就是方便于求轉(zhuǎn)置,求逆,求跡

>>> a
matrix([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
>>> a.T
matrix([[1, 4, 7],
    [2, 5, 8],
    [3, 6, 9]])
>>> a.H#共軛轉(zhuǎn)置
matrix([[1, 4, 7],
    [2, 5, 8],
    [3, 6, 9]])
>>> b=np.eye(3)*3
>>> b
array([[3., 0., 0.],
    [0., 3., 0.],
    [0., 0., 3.]])
>>> b=np.mat(b)
>>> b.I#求逆運(yùn)算
matrix([[0.33333333, 0.    , 0.    ],
    [0.    , 0.33333333, 0.    ],
    [0.    , 0.    , 0.33333333]])
>>> np.trace(b)#求跡運(yùn)算
9.0

以上是“python中數(shù)組和矩陣乘法怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:python中數(shù)組和矩陣乘法怎么用-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article16/deoedg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)微信小程序、小程序開發(fā)、Google、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
改则县| 墨竹工卡县| 枣庄市| 葫芦岛市| 乳山市| 遵义市| 灯塔市| 昭觉县| 江陵县| 鄱阳县| 长阳| 焦作市| 怀远县| 舒兰市| 锡林浩特市| 尼勒克县| 错那县| 平度市| 旌德县| 万山特区| 梁平县| 莫力| 濮阳市| 大理市| 抚顺县| 黎川县| 宁阳县| 宜黄县| 丰县| 张家界市| 扎囊县| 醴陵市| 屏南县| 饶阳县| 大埔区| 南部县| 永兴县| 将乐县| 油尖旺区| 景洪市| 奉新县|