最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年05月18日 11:20:41   作者:manjhOK  
這篇文章主要介紹了python中數(shù)組和矩陣乘法及使用總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

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

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ù)組的點乘運算通過np.dot(a,b)來實現(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]])
>>> #如果想要矩陣運算,則需要np.dot()函數(shù)
>>> np.dot(c,a)#c為一行三列,放于數(shù)組a之前,按正常矩陣方式運算
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ù)組使用*的運算其結(jié)果屬于數(shù)組運算,對應(yīng)位置元素之間的運算
array([[ 1, 4, 9],
    [16, 25, 36],
    [49, 64, 81]])
>>> #但是不能更改a,d點乘的位置,不符合矩陣運算格式
>>> 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)置,求逆,求跡運算請參考上篇文章

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#矩陣的加減運算和數(shù)組運算一致
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#矩陣運算
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)#和矩陣運算一致
matrix([[30, 36, 42]])
>>> np.dot(a,c)#自動將a轉(zhuǎn)換成3行1列參與運算,返回結(jié)果格式已經(jīng)變?yōu)?行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 "<pyshell#71>", line 1, in <module>
  c*a 
ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0)

矩陣運算的另一個好處就是方便于求轉(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#求逆運算
matrix([[0.33333333, 0.    , 0.    ],
    [0.    , 0.33333333, 0.    ],
    [0.    , 0.    , 0.33333333]])
>>> np.trace(b)#求跡運算
9.0

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

相關(guān)文章

  • Python單向鏈表和雙向鏈表原理與用法實例詳解

    Python單向鏈表和雙向鏈表原理與用法實例詳解

    這篇文章主要介紹了Python單向鏈表和雙向鏈表原理與用法,結(jié)合實例形式詳細分析了單向鏈表與雙向鏈表的概念、原理以及創(chuàng)建、添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python項目打包部署到服務(wù)器的實現(xiàn)

    Python項目打包部署到服務(wù)器的實現(xiàn)

    本文主要介紹了PyCharm和Ubuntu服務(wù)器部署Python項目,包括打包、上傳、安裝和設(shè)置自啟動服務(wù)的步驟,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • python requests post多層字典的方法

    python requests post多層字典的方法

    今天小編就為大家分享一篇python requests post多層字典的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python Tkinter模塊 GUI 可視化實例

    Python Tkinter模塊 GUI 可視化實例

    今天小編就為大家分享一篇Python Tkinter模塊 GUI 可視化實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • dataframe 按條件替換某一列中的值方法

    dataframe 按條件替換某一列中的值方法

    今天小編就為大家分享一篇dataframe 按條件替換某一列中的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • ubuntu系統(tǒng)下多個python版本如何設(shè)置默認python和pip

    ubuntu系統(tǒng)下多個python版本如何設(shè)置默認python和pip

    pip是一個用來安裝Python軟件包的工具,下面這篇文章主要給大家介紹了關(guān)于ubuntu系統(tǒng)下多個python版本如何設(shè)置默認python和pip的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 七個非常實用的Python工具包總結(jié)

    七個非常實用的Python工具包總結(jié)

    Python 擁有海量的包,無論是普通任務(wù)還是復(fù)雜任務(wù),我們經(jīng)常在應(yīng)用程序中使用大量的工具包.本文我將討論一些常被低估的數(shù)據(jù)科學(xué)包,包括:數(shù)據(jù)清理、應(yīng)用程序開發(fā)和調(diào)試方面,需要的朋友可以參考下
    2021-06-06
  • Python全局變量關(guān)鍵字global的簡單使用

    Python全局變量關(guān)鍵字global的簡單使用

    python中g(shù)lobal關(guān)鍵字主要作用是聲明變量的作用域,下面這篇文章主要給大家介紹了關(guān)于Python全局變量關(guān)鍵字global的簡單使用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python快速實現(xiàn)定時器的五種常見方法詳解

    Python快速實現(xiàn)定時器的五種常見方法詳解

    這篇文章主要為大家詳細介紹了使用Python語言快速實現(xiàn)定時器的五種常見方法,分為內(nèi)置方法 與 第三方庫的方法,感興趣的小伙伴可以了解下
    2025-07-07
  • Python使用chardet判斷字符編碼

    Python使用chardet判斷字符編碼

    這篇文章主要介紹了Python使用chardet判斷字符編碼的方法,較為詳細的分析了Python中chardet的功能、安裝及使用技巧,需要的朋友可以參考下
    2015-05-05

最新評論

东兰县| 依安县| 道孚县| 东乡| 枣庄市| 龙井市| 宜春市| 加查县| 平陆县| 始兴县| 竹北市| 揭阳市| 嫩江县| 石台县| 樟树市| 全椒县| 灯塔市| 缙云县| 涪陵区| 吉安市| 长汀县| 惠安县| 广平县| 平谷区| 得荣县| 宝应县| 阜新| 台前县| 鲁山县| 大丰市| 依兰县| 昌宁县| 拜泉县| 松滋市| 哈密市| 嘉善县| 平和县| 平邑县| 勐海县| 玉溪市| 延庆县|