大資料概念解析:分散式儲存與資料庫
阿新 • • 發佈:2020-10-17
Numpy的陣列array和矩陣matrix
Numpy的主要物件是同種元素的多維陣列。區別於python的list(可儲存多種)。這是一個所有的元素都是一種型別,通過一個正整數元組索引的元素表格(通常元素是是數字)。
在Numpy種維度(dimensions)角坐軸(axes)
0維(標量): 3
一維(陣列/向量):[1,2]
二維(矩陣):[[1,2],[3,4]]
三維(及以上稱為張量):[[[1,2],[3,4]]
numpy的索引和切片區別
最主要的是,索引維度根據索引輸入維度,下降相應維度;切片,返回結果維度是不會下降的。
因此,"X[ 切片1,切片2]" 和" "X[切片1][切片2]"結果不相同。前面相當於”切片1" 匹配維度0索引,”切片2“匹配維度1索引。 後者則是, 先獲取"X[切片1]" (資料維度不變),在原來的資料維度上,再獲取依此”切片2“指定索引。
print("ndarray的基本索引") x = np.array([[1,2],[3,4],[5,6]]) print(x.shape) print(x[2]," ",x[2][1]) # 索引獲取 print(x[2,1]) x = np.array([[ [1,2],[3,4] ,[[5,6],[7,8]]]]) print (x.shape) print(x) print(x[0,0,1]) y = x[0].copy() #生成一個副本 z = x[0] #未生成副本 。始終記得python賦值類似傳引用。 print(y) print(z) y[0,0] = 9 #獨立副本互不關聯print(y) print(x) z[0,0] = 9 # print(x) #切片演示 print("narray的切片") x = np.array([1,2,3,4,5]) print(x[1:4]) print(x[:3]) print(x[1:]) print(x) print(x[0:4:2]) x = np.array([[1,2],[3,4],[5,6]]) print(x[:2]) print(x[:2,:1]) #索引。注意左閉右開。切片前後資料維度不會降低。這邊會生成成 索引值。最終形式是 [1,3] print(x[:2][:1]) #切片。和上面值不一樣.切片不會改變資料維度。 過程是 獲取 [[1,2],[3,4]] 此時維度還是之前的, 再接[:1] ,相當於取[1,2]x[:2,:1] = 9 #標量可以上升到任意維度進行廣播 #x[:2,:1] = 3,4 #將會排除異常。 標量外的其餘情況賦值,需要維度匹配. 全部是 切片,返回的資料維度不變。 有一個是標量,則是索引,維度下降