Python列表 Numpy陣列與矩陣的區別

2021-10-18 07:37:13 字數 2050 閱讀 9497

python列表和numpy陣列的區別:

numpy使用ndarray物件來處理多維陣列,該物件是乙個快速而靈活的大資料容器。使用python列表可以儲存一維陣列,通過列表的巢狀可以實現多維陣列,那麼為什麼還需要使用numpy呢?numpy是專門針對陣列的操作和運算進行了設計,所以陣列的儲存效率和輸入輸出效能遠優於python中的巢狀列表,陣列越大,numpy的優勢就越明顯。通常numpy陣列中的所有元素的型別都是相同的,而python列表中的元素型別是任意的,所以在通用效能方面numpy陣列不及python列表,但在科學計算中,可以省掉很多迴圈語句,**使用方面比python列表簡單的多。

能用array的盡量用array,迫不得已要用matrix的,最後再轉換為array!兩個重要轉換函式:

numpy陣列和矩陣的區別:

正是由於matrix必須是二維的,當只有乙個元素時(例如:1)matrix下的shape=(1,1)而array下的shape=(1,)

1]#矩陣情況下報錯

traceback (most recent call last)

: file "a:\anaconda3\lib\site-packages\ipython\core\interactiveshell.py"

, line 3418

,in run_code

exec

(code_obj, self.user_global_ns, self.user_ns)

file ""

, line 1,in

x[0]

[1] file "a:\anaconda3\lib\site-packages\numpy\matrixlib\defmatrix.py"

, line 193

,in __getitem__

out = n.ndarray.__getitem__(self, index)

indexerror: index 1

is out of bounds for axis 0

with size 1y[0

][1]

#矩陣情況下未報錯

out[29]

:1x[0

].shape

out[30]

:(1,

4)y[0

].shape

out[31]

:(4,

)在做歸約運算時,array的維數會發生變化,但matrix總是保持為2維。

NumPy陣列廣播規則 python

numpy陣列遵循一組嚴格的規則,這組規則決定了兩個陣列之間的操作 1 如果兩個陣列的維度不同,小維度陣列將在最左邊補1 2 如果兩個陣列任何乙個維度都不匹配,陣列會擴充套件小的維度來和較大的那個陣列維度匹配 3 兩個陣列在任何乙個維度上都不匹配並且沒有任何乙個維度等於1,會引發異常 a np.ar...

Python中numpy陣列切片

python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...

python之numpy多維陣列

1.ndarray,是具有向量算術運算且節省空間的多維陣列。2.可以用於對整組的資料快速進行運算的辨準數學函式。3.能夠用於讀寫磁碟資料的工具以及用於作業系統記憶體對映的工具。1.numpy是在乙個連續的記憶體塊中儲存資料,獨立於其他的python內建物件。2.numpy可以在整個陣列上執行複雜的計...