您好,登錄后才能下訂單哦!
本篇內容介紹了“NumPy線性代數的使用方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
NumPy是Python的一個科學計算庫,是許多庫(比如Pandas)的基礎。
線性代數中的對象(或數據結構)類型:
標量:單個數字
向量:數字數組
矩陣:二維數字數組
張量:N>2的N維數列
標量就是一個數字。我們將在下面的示例中看到,它可以用于向量化操作。
向量是一組數字。例如,5個元素的向量:
我們可以在向量化運算中使用標量。對向量的每個元素執行指定的操作。例如
矩陣是二維向量
它看起來像是一個包含行和列的pandas數據框。實際上,pandas數據幀被轉換成矩陣,然后輸入到機器學習模型中。
張量是一個N維數數組,其中N大于2。張量主要用于輸入數據為三維的深度學習模型。
很難用數字來表示,但是可以把T看成3個3x2形狀的矩陣。
shape方法可用于檢查numpy數組的形狀。
數組的大小是通過乘以每個維度的大小來計算的。
如果行數等于列數,矩陣稱為方陣。因此,上面的矩陣A是一個方陣。
單位矩陣,表示為I,是一個方陣,對角線上有是,其他位置全是0。NumPy的identity函數可以用來創建任意大小的單位矩陣。
一個單位矩陣的特殊之處在于矩陣乘上它不會改變。從這個意義上講,它與實數中的數字1相似。我們將在這篇文章的矩陣乘法部分用單位矩陣做例子。
矩陣的逆矩陣是與原始矩陣相乘得到單位矩陣的矩陣。
不是每個矩陣都有一個逆矩陣。如果矩陣A有一個逆矩陣,那么它被稱為可逆或非奇異
點乘和矩陣乘法是復雜機器學習和深度學習模型的組成部分,因此對它們進行全面的了解是非常有價值的。
兩個向量的點積是元素相對于其位置的乘積之和。第一個向量的第一個元素乘以第二個向量的第一個元素,依此類推。這些積的和就是點積。在NumPy中計算點積的函數是dot()。
讓我們首先以numpy數組的形式創建兩個簡單的向量并計算點積。
點積計算為(1*2)+(2*4)+(3*6),即28。
因為我們在相同的位置相乘,所以這兩個向量的長度必須相同才能得到點積。
在數據科學領域,我們主要處理矩陣。矩陣是一組以結構化方式組合的行和列向量。因此,兩個矩陣的相乘涉及向量的許多點積運算。我們再看一些例子就會更清楚了。我們先用NumPy創建兩個2x2矩陣。
2x2矩陣有2行2列。行和列的索引以0開頭。例如,A(索引為0的行)的第一行是[4,2]的數組。A的第一列是[4,0]的數組。第一行和第一列的元素是4。
我們可以訪問單個行、列或元素,如下所示:
這些是理解矩陣乘法的重要概念。
兩個矩陣的相乘涉及到第一個矩陣的行和第二個矩陣的列之間的點乘。第一步是A的第一行和B的第一列之間的點積。這個點積的結果是在位置[0,0](即第一行,第一列)處得到的矩陣的元素。
因此,得到的矩陣C在第一行和第一列將有一個 (4*0) + (2*4) 。C[0,0]=18。
下一步是A的第一行和B的第二列的點積。
C在第一行和第二列有一個(4*0)+(2*4)。C[0,1]=8。
第一行A已完成,因此我們從A的第二行開始,并遵循相同的步驟。
C在第二行和第一列有一個(0*4)+(3*1)。C[1,0]=3。
最后一步是A的第二行和B的第二列之間的點積。
C在第二行和第二列有一個(0*0)+(3*4)。C[1,1]=12。
我們已經看到它是如何一步一步完成的。所有這些操作都是用np.dot操作:
你可能還記得,我們已經提到過,單位矩陣乘以任何矩陣時不會改變矩陣。讓我們舉個例子。
我們還提到,當一個矩陣乘以它的逆矩陣時,結果就是單位矩陣。讓我們先創建一個矩陣,然后求它的逆矩陣。我們可以利用NumPy函數**linalg.inv()**求矩陣的逆。
用B的逆矩陣C乘以B:
我們得到了單位矩陣。
正如我們在向量點積中回憶的那樣,兩個向量的長度必須相同才能有一個點積。矩陣乘法中的每個點積運算都必須遵循這個規則。點積是在第一個矩陣的行和第二個矩陣的列之間進行的。因此,第一個矩陣的行和第二個矩陣的列的長度必須相同。
矩陣乘法的要求是第一個矩陣的列數必須等于第二個矩陣的行數。
例如,我們可以用一個3x2矩陣乘以一個2x3矩陣。
結果矩陣的形狀將是3x3,因為我們對A的每一行進行3點積運算,A有3行。確定結果矩陣形狀的一種簡單方法是從第一個矩陣中提取行數,從第二個矩陣中提取列數:
3x2和2x3相乘返回3x3
3x2和2x2相乘返回3x2
2x4和4x3相乘返回2x3
“NumPy線性代數的使用方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。