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可以在整個陣列上執行複雜的計...