>>importnumpyasnp>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])>>>aarray([[1,2,3],[4,5,6],[7,8,9]])>>>b=a.copy" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python中數組和矩陣乘法及使用總結(推薦)

系統 1535 0

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

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

如果a,b是數組的話,則a*b是數組的運算

1.對數組的操作

            
>>> 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#多維數組的加減,按對應位置操作
array([[ 2, 4, 6],
    [ 8, 10, 12],
    [14, 16, 18]])
>>> a*3#多維數組乘常數,則對數組中每一個元素乘該常數
array([[ 3, 6, 9],
    [12, 15, 18],
    [21, 24, 27]])
>>> np.dot(a,b)#數組的點乘運算通過np.dot(a,b)來實現,相當于矩陣乘
array([[ 30, 36, 42],
    [ 66, 81, 96],
    [102, 126, 150]])
>>> c=np.array([1,2,3])#構造一行三列的數組
>>> c
array([1, 2, 3])
>>> c*a#c為一行三列,放于數組a之前,則對數組a中每行對應位置相乘
array([[ 1, 4, 9],
    [ 4, 10, 18],
    [ 7, 16, 27]])
>>> a*c#c為一行三列,放于數組a之后,依舊是對數組a中每行對應位置相乘
array([[ 1, 4, 9],
    [ 4, 10, 18],
    [ 7, 16, 27]])
>>> #如果想要矩陣運算,則需要np.dot()函數
>>> np.dot(c,a)#c為一行三列,放于數組a之前,按正常矩陣方式運算
array([30, 36, 42])
>>> np.dot(a,c)#c為一行三列,放于數組a之后,相當于矩陣a乘以3行一列的c矩陣,返回結果值不變,格式為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)一致,但格式以改變為3行1列
array([[14],
    [32],
    [50]])
 
>>> a*a#數組使用*的運算其結果屬于數組運算,對應位置元素之間的運算
array([[ 1, 4, 9],
    [16, 25, 36],
    [49, 64, 81]])
>>> #但是不能更改a,d點乘的位置,不符合矩陣運算格式
>>> np.dot(d,a)
Traceback (most recent call last):
 File "
            
              ", line 1, in 
              
                
  np.dot(d,a)
ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0)

              
            
          

對于數組的轉置,求逆,求跡運算請參考上篇文章

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#矩陣的加減運算和數組運算一致
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])#構造一行三列數組
>>> c
array([1, 2, 3])
>>> c*a#矩陣運算
matrix([[30, 36, 42]])
>>> a*c#不合矩陣規則
Traceback (most recent call last):
 File "
            
              ", line 1, in 
              
                
  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)#和矩陣運算一致
matrix([[30, 36, 42]])
>>> np.dot(a,c)#自動將a轉換成3行1列參與運算,返回結果格式已經變為1行3列而非3行一列的矩陣
matrix([[14, 32, 50]])
>>> c=c.reshape(3,1)
>>> c
array([[1],
    [2],
    [3]])
>>> a*c#和矩陣運算一致
matrix([[14],
    [32],
    [50]])
>>> c*a#不合矩陣運算格式
Traceback (most recent call last):
 File "
                
                  ", line 1, in 
                  
                    
  c*a 
ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0)

                  
                
              
            
          

矩陣運算的另一個好處就是方便于求轉置,求逆,求跡

            
>>> 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#共軛轉置
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#求逆運算
matrix([[0.33333333, 0.    , 0.    ],
    [0.    , 0.33333333, 0.    ],
    [0.    , 0.    , 0.33333333]])
>>> np.trace(b)#求跡運算
9.0

          

以上所述是小編給大家介紹的python中數組和矩陣乘法及使用總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 九九51精品国产免费看 | 四虎影剧院 | a视频在线播放 | 九九成人免费视频 | 一级黄色录像免费观看 | 黄色视屏在线免费观看 | 天天干天天操天天透 | 玖玖精品视频在线 | 久色一区| 亚洲成a人片在线观看www | 精品国产91久久久久久久a | 欧美国产激情二区三区 | 手机在线国产精品 | 久久这里只有精品国产99 | 在线观看欧洲成人免费视频 | 久久久精品国产四虎影视 | 成人午夜看片在线观看 | 欧美日韩理论 | 国产精品深夜福利免费观看 | 99久久99久久久精品齐齐鬼色 | 狠狠色噜噜狠狠狠97影音先锋 | 国内精品久久久久鸭 | 成人在线免费观看 | 久久97精品久久久久久清纯 | 国产综合精品久久久久成人影 | 丁香狠狠色婷婷久久综合 | 欧美激情免费观看 | 日日狠狠久久偷偷四色综合免费 | 国产精品成人观看视频免费 | 99热播| 久久久精品日本一区二区三区 | 亚洲综合一区二区精品久久 | 日韩精品中文字幕视频一区 | 国产美女色视频 | 免费看成人国产一区二区三区 | 欧美成综合网网站 | 国产成人毛片视频不卡在线 | 中文字幕精品一区二区日本大胸 | 久久宗合色 | 免费看欧美一级特黄α大片 | 999精品影视在线观看 |