Numpy學(xué)習(xí)筆記

點(diǎn)積與乘法運(yùn)算符

Numpy的乘法運(yùn)算符*是按元素逐個運(yùn)算的缀程,與matlab不同。假設(shè)矩陣a(m,n) b(n,k),要求a的列數(shù)與b的行數(shù)相等才可進(jìn)行乘法運(yùn)算。
計算規(guī)則:a(m,n)*b(n,k)=c(m,k):
matlab環(huán)境下涵叮,基本運(yùn)算符按照矩陣乘法處理:

>> a=[1,2,3;2,2,4]
a =

   1   2   3
   2   2   4

>> b=[3;3;3]
b =

   3
   3
   3

>> a*b
ans =

   18
   24

使用numpy運(yùn)算結(jié)果是按照矩陣的點(diǎn)積處理:

a = np.array([[1,2,3],[2,2,4]])
b= np.array([3,3,3])
a*b
Out[99]: 
array([[ 3,  6,  9],
       [ 6,  6, 12]])

矩陣乘法運(yùn)算需要使用dot函數(shù):

np.dot(a,b)
Out[100]: 
array([18, 24])

矩陣轉(zhuǎn)置

矩陣轉(zhuǎn)置把矩陣的行和列互相交換。
matlab操作命令:

>> a=[1,3,2;2,1,5;6,3,1]
a =

   1   3   2
   2   1   5
   6   3   1
>> a'
ans =

   1   2   6
   3   1   3
   2   5   1

numpy操作:

a=np.array([[1,3,2],[2,1,5],[6,3,1]])
a.T
Out[116]: 
array([[1, 2, 6],
       [3, 1, 3],
       [2, 5, 1]])

廣播(broadcasting)機(jī)制

假設(shè)對矩陣X的所有列加上一個向量伞插,基本實(shí)現(xiàn)思路可以是這樣:

import numpy as np
x = np.array([[1,2,4],[3,2,2],[4,2,5]])
v = [1,0,1]
y = np.empty_like(x)
for i in range(3):
    y[i,:] = x[i,:]+v
y
Out[7]: 
array([[2, 2, 5],
       [4, 2, 3],
       [5, 2, 6]])

對矩陣X的每一行進(jìn)行求和處理割粮,就可以算出最終結(jié)果。除此之外媚污,也可以用tile函數(shù)將向量按行復(fù)制成為與X具有相同shape的矩陣舀瓢,然后再進(jìn)行求和:

vv = np.tile(v,(3, 1))
vv
Out[10]: 
array([[1, 0, 1],
       [1, 0, 1],
       [1, 0, 1]])
x+vv
Out[11]: 
array([[2, 2, 5],
       [4, 2, 3],
       [5, 2, 6]])

但是,numpy提供的廣播機(jī)制可以簡化這種shape不同的數(shù)組或矩陣之間的基本運(yùn)算:

x+v
Out[12]: 
array([[2, 2, 5],
       [4, 2, 3],
       [5, 2, 6]])

來看一個基本的例子:

v = np.array([1,2,3])
w = np.array([4,5])
np.reshape(v,(3,1))
Out[15]: 
array([[1],
       [2],
       [3]])
np.reshape(v,(3,1))*w
Out[16]: 
array([[ 4,  5],
       [ 8, 10],
       [12, 15]])

向量v在進(jìn)行reshape操作之后變成3x1的矩陣耗美,w是一個1x2的向量京髓,在進(jìn)行點(diǎn)積運(yùn)算時航缀,廣播機(jī)制就生效了,最終結(jié)果是一個3x2的矩陣朵锣。廣播機(jī)制的兩個基本原則:

image.png

numpy數(shù)組與矩陣

大部分情況下,numpy可以利用二維數(shù)組完成矩陣的基本操作弃鸦。二者可以通過mat函數(shù)進(jìn)行轉(zhuǎn)換:

x = np.array([[1,2,3],[2,3,2],[4,2,5]])
y = np.mat(x)
y
Out[46]: 
matrix([[1, 2, 3],
        [2, 3, 2],
        [4, 2, 5]])

進(jìn)行基本求逆運(yùn)算:

x*y.I
Out[47]: 
matrix([[  1.00000000e+00,   0.00000000e+00,  -5.55111512e-17],
        [ -1.11022302e-16,   1.00000000e+00,  -2.77555756e-17],
        [  0.00000000e+00,   0.00000000e+00,   1.00000000e+00]])
x*y.I - np.eye(3)
Out[49]: 
matrix([[ -2.22044605e-16,   0.00000000e+00,  -5.55111512e-17],
        [ -1.11022302e-16,   0.00000000e+00,  -2.77555756e-17],
        [  0.00000000e+00,   0.00000000e+00,  -2.22044605e-16]])
x*y.I - (x*y.I - np.eye(3))
Out[50]: 
matrix([[ 1.,  0.,  0.],
        [ 0.,  1.,  0.],
        [ 0.,  0.,  1.]])

I屬性即可取得矩陣的逆矩陣绞吁,二維數(shù)組不具有該屬性。逆矩陣與自身相乘得到的結(jié)果應(yīng)該是一個單位矩陣唬格,由于計算機(jī)的運(yùn)算誤差家破,對角線以外的位置產(chǎn)生了很多極小的誤差,因此減去一個同樣shape的單位矩陣就可以得到這個誤差值购岗,將運(yùn)算結(jié)果減去誤差就可以得到一個標(biāo)準(zhǔn)單位矩陣汰聋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市喊积,隨后出現(xiàn)的幾起案子烹困,更是在濱河造成了極大的恐慌,老刑警劉巖乾吻,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件髓梅,死亡現(xiàn)場離奇詭異,居然都是意外死亡绎签,警方通過查閱死者的電腦和手機(jī)枯饿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诡必,“玉大人鸭你,你說我怎么就攤上這事∏苋ǎ” “怎么了袱巨?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碳抄。 經(jīng)常有香客問我愉老,道長,這世上最難降的妖魔是什么剖效? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任嫉入,我火速辦了婚禮焰盗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咒林。我一直安慰自己熬拒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布垫竞。 她就那樣靜靜地躺著澎粟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪欢瞪。 梳的紋絲不亂的頭發(fā)上活烙,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音遣鼓,去河邊找鬼啸盏。 笑死,一個胖子當(dāng)著我的面吹牛骑祟,可吹牛的內(nèi)容都是我干的回懦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼次企,長吁一口氣:“原來是場噩夢啊……” “哼粉怕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抒巢,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤贫贝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛉谜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稚晚,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年型诚,在試婚紗的時候發(fā)現(xiàn)自己被綠了客燕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡狰贯,死狀恐怖也搓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涵紊,我是刑警寧澤傍妒,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站摸柄,受9級特大地震影響颤练,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驱负,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一嗦玖、第九天 我趴在偏房一處隱蔽的房頂上張望患雇。 院中可真熱鬧,春花似錦宇挫、人聲如沸苛吱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翠储。三九已至,卻和暖如春娱局,著一層夾襖步出監(jiān)牢的瞬間彰亥,已是汗流浹背咧七。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工衰齐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人继阻。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓耻涛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瘟檩。 傳聞我的和親對象是個殘疾皇子抹缕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容