【每天幾分鐘,從零入門python編程的世界!】
關於numpy中數組的相乘,我們學習了對位相乘(用numpy.multiply、或*直接相乘,比如數組a和b的對位相乘就是numpy.multiply(a,b)或a*b)和一維數組的點乘(dot product,也有人叫inner product,比如一維數組a和b的點乘就是a.b)。
numpy中的點乘就是numpy.dot。對於二維以上的數組的點乘,就會用到矩陣相乘。
對於矩陣相乘,我們直接推導最一般最基本的情況,就是ndarray(我們可以把它理解為n維的數組)和mdarray(我們可以把它理解為m維的數組)這兩個數組進行相乘。所以我們必須要接觸matrix(矩陣)的一些概念,我們可以把matrix看做是一種非常有用的數據儲存的結構。在後面的物理、Fintech(科技金融)、圖像識別、機器學習等方面,都可以用到矩陣。
因此矩陣的數學原理也是非常重要的,感興趣的話可以去看看。現在我們只做一些最簡單的演示,如果現在對矩陣了解的不是很深入也沒關係,也沒有必要在現在的階段花很大精力去學習,我們後面的學習中會不斷的去重複和推演。現在先掌握最基礎的東西,然後在numpy中知道怎麼用矩陣相乘的方法去計算就可以了。
matrix multiplication(矩陣相乘)就是兩個矩陣形式結構的數據進行運算的方法。同時因為矩陣在空間上是有它的意義的,所以矩陣運算是一個很精妙的東西。
numpy.dot的計算方法有很多,相當於當兩個數組進行點乘的時候,它在內部對這兩個數組做了一個判斷,它會根據這兩個數組的不同維度結構,採用不同的計算方式,所以它會判斷對於兩個都是一維的數組,怎麼計算,兩個二維以上的數組,怎麼計算,比如二維以上數組的點乘,就是用我們現在介紹的矩陣相乘的方法計算。
●矩陣相乘
關於矩陣相乘,大學的線性代數課程裡面學過,現在我再大概的介紹一下最基本的運算。矩陣運算的其他的一些規則、規律,後面遇到了會再進行介紹。
例:
比如現在有兩個矩陣x和y。
x和y都是2*2的結構,就是2行2列的結構。
運算過程:
①矩陣相乘,首先要判斷第一個矩陣的列數和第二個矩陣的行數是否相等,如果相等才能進行相乘。
在本例中,x的列數是2,y的行數是2,所以可以相乘。
②其次,把第一個矩陣的列數和第二個矩陣的行數消掉,剩下的數字就是相乘後的結果的行數和列數。
在本例中,把第一個矩陣的列數2和第二個矩陣的行數2消掉,剩下的數字就是第一個矩陣的行數2和第二個矩陣的列數2,所以相乘的結果是2行2列的矩陣。
假如說x是3行2列,y是2行5列,那麼相乘的結果,就是3行5列的矩陣。
③運算過程如下圖:
上圖是兩個2x2的矩陣相乘的運算過程和結果。
其他維度的矩陣相乘,相信你也知道如何運算了吧,規律是一樣的。如果有不明白的,可以評論區留言都可以。
以上就是矩陣相乘的運算方法和過程。
我是時問新,歡迎關注我。跟我一起從零開始學習Python,每天花一點時間,開啟python編程新世界的大門,領略新的風光,讓人生多一種可能!