溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NumPy線性代數(shù)的使用方法是什么

發(fā)布時間:2021-12-27 10:30:59 來源:億速云 閱讀:131 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“NumPy線性代數(shù)的使用方法是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

NumPy是Python的一個科學(xué)計(jì)算庫,是許多庫(比如Pandas)的基礎(chǔ)。


線性代數(shù)中的對象類型

線性代數(shù)中的對象(或數(shù)據(jù)結(jié)構(gòu))類型:

  • 標(biāo)量:單個數(shù)字

  • 向量:數(shù)字?jǐn)?shù)組

  • 矩陣:二維數(shù)字?jǐn)?shù)組

  • 張量:N>2的N維數(shù)列

標(biāo)量就是一個數(shù)字。我們將在下面的示例中看到,它可以用于向量化操作。

向量是一組數(shù)字。例如,5個元素的向量:

NumPy線性代數(shù)的使用方法是什么

我們可以在向量化運(yùn)算中使用標(biāo)量。對向量的每個元素執(zhí)行指定的操作。例如

NumPy線性代數(shù)的使用方法是什么

矩陣是二維向量

NumPy線性代數(shù)的使用方法是什么

它看起來像是一個包含行和列的pandas數(shù)據(jù)框。實(shí)際上,pandas數(shù)據(jù)幀被轉(zhuǎn)換成矩陣,然后輸入到機(jī)器學(xué)習(xí)模型中。

張量是一個N維數(shù)數(shù)組,其中N大于2。張量主要用于輸入數(shù)據(jù)為三維的深度學(xué)習(xí)模型。

NumPy線性代數(shù)的使用方法是什么

很難用數(shù)字來表示,但是可以把T看成3個3x2形狀的矩陣。

shape方法可用于檢查numpy數(shù)組的形狀。

NumPy線性代數(shù)的使用方法是什么

數(shù)組的大小是通過乘以每個維度的大小來計(jì)算的。

NumPy線性代數(shù)的使用方法是什么


常用矩陣術(shù)語

如果行數(shù)等于列數(shù),矩陣稱為方陣。因此,上面的矩陣A是一個方陣。

單位矩陣,表示為I,是一個方陣,對角線上有是,其他位置全是0。NumPy的identity函數(shù)可以用來創(chuàng)建任意大小的單位矩陣。

NumPy線性代數(shù)的使用方法是什么

一個單位矩陣的特殊之處在于矩陣乘上它不會改變。從這個意義上講,它與實(shí)數(shù)中的數(shù)字1相似。我們將在這篇文章的矩陣乘法部分用單位矩陣做例子。

矩陣的逆矩陣是與原始矩陣相乘得到單位矩陣的矩陣。

NumPy線性代數(shù)的使用方法是什么

不是每個矩陣都有一個逆矩陣。如果矩陣A有一個逆矩陣,那么它被稱為可逆或非奇異


點(diǎn)乘與矩陣乘法

點(diǎn)乘和矩陣乘法是復(fù)雜機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型的組成部分,因此對它們進(jìn)行全面的了解是非常有價值的。

兩個向量的點(diǎn)積是元素相對于其位置的乘積之和。第一個向量的第一個元素乘以第二個向量的第一個元素,依此類推。這些積的和就是點(diǎn)積。在NumPy中計(jì)算點(diǎn)積的函數(shù)是dot()。

讓我們首先以numpy數(shù)組的形式創(chuàng)建兩個簡單的向量并計(jì)算點(diǎn)積。

NumPy線性代數(shù)的使用方法是什么

點(diǎn)積計(jì)算為(1*2)+(2*4)+(3*6),即28。

因?yàn)槲覀冊谙嗤奈恢孟喑?,所以這兩個向量的長度必須相同才能得到點(diǎn)積。

在數(shù)據(jù)科學(xué)領(lǐng)域,我們主要處理矩陣。矩陣是一組以結(jié)構(gòu)化方式組合的行和列向量。因此,兩個矩陣的相乘涉及向量的許多點(diǎn)積運(yùn)算。我們再看一些例子就會更清楚了。我們先用NumPy創(chuàng)建兩個2x2矩陣。

NumPy線性代數(shù)的使用方法是什么

NumPy線性代數(shù)的使用方法是什么

2x2矩陣有2行2列。行和列的索引以0開頭。例如,A(索引為0的行)的第一行是[4,2]的數(shù)組。A的第一列是[4,0]的數(shù)組。第一行和第一列的元素是4。

我們可以訪問單個行、列或元素,如下所示:

NumPy線性代數(shù)的使用方法是什么

這些是理解矩陣乘法的重要概念。

兩個矩陣的相乘涉及到第一個矩陣的行和第二個矩陣的列之間的點(diǎn)乘。第一步是A的第一行和B的第一列之間的點(diǎn)積。這個點(diǎn)積的結(jié)果是在位置[0,0](即第一行,第一列)處得到的矩陣的元素。

NumPy線性代數(shù)的使用方法是什么

因此,得到的矩陣C在第一行和第一列將有一個 (4*0) + (2*4) 。C[0,0]=18。

下一步是A的第一行和B的第二列的點(diǎn)積。

NumPy線性代數(shù)的使用方法是什么

C在第一行和第二列有一個(4*0)+(2*4)。C[0,1]=8。

第一行A已完成,因此我們從A的第二行開始,并遵循相同的步驟。

NumPy線性代數(shù)的使用方法是什么

C在第二行和第一列有一個(0*4)+(3*1)。C[1,0]=3。

最后一步是A的第二行和B的第二列之間的點(diǎn)積。

NumPy線性代數(shù)的使用方法是什么

C在第二行和第二列有一個(0*0)+(3*4)。C[1,1]=12。

我們已經(jīng)看到它是如何一步一步完成的。所有這些操作都是用np.dot操作:

NumPy線性代數(shù)的使用方法是什么

你可能還記得,我們已經(jīng)提到過,單位矩陣乘以任何矩陣時不會改變矩陣。讓我們舉個例子。

NumPy線性代數(shù)的使用方法是什么

我們還提到,當(dāng)一個矩陣乘以它的逆矩陣時,結(jié)果就是單位矩陣。讓我們先創(chuàng)建一個矩陣,然后求它的逆矩陣。我們可以利用NumPy函數(shù)**linalg.inv()**求矩陣的逆。

NumPy線性代數(shù)的使用方法是什么

用B的逆矩陣C乘以B:

NumPy線性代數(shù)的使用方法是什么

我們得到了單位矩陣。


正如我們在向量點(diǎn)積中回憶的那樣,兩個向量的長度必須相同才能有一個點(diǎn)積。矩陣乘法中的每個點(diǎn)積運(yùn)算都必須遵循這個規(guī)則。點(diǎn)積是在第一個矩陣的行和第二個矩陣的列之間進(jìn)行的。因此,第一個矩陣的行和第二個矩陣的列的長度必須相同。

矩陣乘法的要求是第一個矩陣的列數(shù)必須等于第二個矩陣的行數(shù)。

例如,我們可以用一個3x2矩陣乘以一個2x3矩陣。

NumPy線性代數(shù)的使用方法是什么

結(jié)果矩陣的形狀將是3x3,因?yàn)槲覀儗的每一行進(jìn)行3點(diǎn)積運(yùn)算,A有3行。確定結(jié)果矩陣形狀的一種簡單方法是從第一個矩陣中提取行數(shù),從第二個矩陣中提取列數(shù):

  • 3x2和2x3相乘返回3x3

  • 3x2和2x2相乘返回3x2

  • 2x4和4x3相乘返回2x3

“NumPy線性代數(shù)的使用方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI