陣列 列向量和行向量區別

2021-09-17 00:19:12 字數 1280 閱讀 3416

在機器學習和深度學習的程式設計過程中,為了提高程式的執行速度,通常將模型表示式轉換為向量表示式(向量化),即利用矩陣運算思想提高執行效率。那麼,在python中究竟如何利用numpy庫定義乙個向量,以及如何判斷否為向量呢?

通常情況下,python中向量和陣列之間界限比較模糊,很多時候是通用的,但是在有時候陣列不一定能夠表示向量,比如,利用numpy中random模組中的randn函式生成的一維陣列,既不是行向量,也不是列向量,而是秩為1的陣列:

上述秩為1的一維陣列僅有乙個方括號,而實際中向量或者矩陣有兩層方括號(即屬於二維陣列),下面給出列向量、行向量和矩陣的示例。

-列向量

-行向量

-矩陣

綜上可知,可以以方括號的形式判斷陣列是否能夠代表乙個向量或者矩陣,又或者通過轉置看前後是否變化來判斷。

在實際程式設計中,可以採用如下方式構建向量或者矩陣,即

(1)reshape()函式

通過reshape()函式可以依據陣列建立指定維度的向量或者矩陣,比如可以針對秩為1的陣列建立列向量或者行向量或者矩陣,即由一維陣列轉化成二維陣列,如下所示

注:reshape()函式可以建立指定形狀的新陣列,但是不會改變原陣列的形狀,如

(2)直接在構建陣列時,利用陣列函式指定行列數

可以利用zeros(),ones(),randn()等函式構建指定形狀的陣列、向量、矩陣,例如

注:np.zeros(數值)構建的一維陣列秩為1,不能代表向量,如

Numpy中的行向量與列向量

首先要說明的是,無論是行向量還是列向量,shape都是二維的,不過其中有一維是1,乙個list既不是行向量也不是列向量。行向量import numpy as np b np.array 1 2,3 reshape 1 1 print b,b.shape 結果 array 1,2,3 1,3 或者下面...

列向量,列空間,零向量,零空間

有時候對乙個事物的理解,關鍵看怎麼用所掌握的知識來解釋它,這時候你別說解釋就是掩飾,因為此時此刻不是你媳婦發現你衣服上有一根長頭髮要跟你吵架,而是你想來想去怎麼也想不明白而失眠,這時候的解釋就是揭示,不為別的,只為能睡個好覺而已。下面的幾句話是我在嘗試理解概念的過程中搜尋得到的幾個關鍵的句子,這些句...

向量中斷和非向量中斷的區別

為什麼會有兩種irq中斷處理方式呢。原來,44b0x 是基於arm7tdmi的晶元。arm系列核心對於irq中斷的處理就是通過查詢中斷標誌暫存器來確定中斷源,並執行對應的中斷服務程式,這也就是非向量中斷處理方法了。44b0x的廠家三星為了加快irq中斷的響應速度,在此基礎上新增了另外一種方法,其實也...