列表和陣列的區別

2021-09-11 06:26:31 字數 1465 閱讀 9328

python列表和numpy陣列的區別: 

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

numpy陣列和矩陣的區別: 

1. numpy matrices必須是2維的,但是 numpy arrays (ndarrays) 可以是多維的(1d,2d,3d····nd). matrix是array的乙個小的分支,包含於array。所以matrix 擁有array的所有特性。 

2. 在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。 

3. matrix 和 array 都可以通過objects後面加.t 得到其轉置。但是 matrix objects 還可以在後面加 .h f得到共軛矩陣, 加 .i 得到逆矩陣。 

4. 相反的是在numpy裡面arrays遵從逐個元素的運算,所以array:c 和d的c*d運算相當於matlab裡面的c.*d運算。而矩陣相乘,則需要numpy裡面的dot命令 。 

例如: 

1** 運算子的作用也不一樣 :因為a是個matrix,所以a**2返回的是a*a,相當於矩陣相乘。而c是array,c**2相當於,c中的元素逐個求平方。 

2.問題就出來了,如果乙個程式裡面既有matrix 又有array,會讓人腦袋大。但是如果只用array,你不僅可以實現matrix所有的功能,還減少了程式設計和閱讀的麻煩。

3.當然你可以通過下面的兩條命令輕鬆的實現兩者之間的轉換:np.asmatrix和np.asarray

4.numpy 中的array與numpy中的matrix的最大的不同是,在做歸約運算時,array的維數會發生變化,但matrix總是保持為2維。例如下面求平均值的運算. 

原文: 

列表和陣列的使用區別

都可以根據索引來取其中的元素 列表中資料型別可以不同,陣列中資料型別相同列表不可以進行科 算,陣列可以 import numpy as np list 1,2,3,4 list是列表型別 a np.array 1 2,3 4 a是陣列型別 list和array都可以根據索引來操作 print lis...

集合和陣列的區別!

以下為jdk1.6中arraylist中的建構函式原始碼。public arraylist int initialcapacity constructs an empty list with an initial capacity of ten.public arraylist 可以看出在建立arr...

指標和陣列的區別

指標和陣列的區別 空間分配 指標是動態分配空間,通過malloc在堆上分配所需要的空間,分配的空間不一定連續,在使用完之後需要呼叫 free 來釋放分配空間。陣列是靜態分配空間,在全域性變數區或者棧上分配空間,分配的空間是連續的,區域性變數在生命週期結束後自動釋放,全域性變數在程式結束完自動釋放。訪...