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]])
(x.shape)
print(x[2],"
",x[2][1]) #
索引獲取
print(x[2,1])
x = np.array([[ [1,2],[3,4] ,[[5,6],[7,8]]]])
(x.shape)
(x)print(x[0,0,1])
y = x[0].copy() #
生成乙個副本
z = x[0] #
未生成副本 。始終記得python賦值類似傳引用。
(y)print
(z)y[0,0] = 9 #
獨立副本互不關聯
(y)print
(x)z[0,0] = 9 #
(x)#
切片演示
print("
narray的切片")
x = np.array([1,2,3,4,5])
print(x[1:4])
print(x[:3])
print(x[1:])
(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 #將會排除異常。 標量外的其餘情況賦值,需要維度匹配. 全部是 切片,返回的資料維度不變。 有乙個是標量,則是索引,維度下降
Numpy學習筆記
測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤 genfromtxt函式 genfromtxt函式建立陣列 資料 genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。genfromtxt能夠考慮缺失的...
numpy學習筆記
1 array.ndim 用來輸出陣列的維度 2 array.shape 用來輸出陣列的形狀 3 arry.size 用來輸出陣列的大小見jupyter notebook的numpy function list 生成函式基本運算 直接用陣列的相加減乘除。也就是相對應的元素間的作用。關係運算 陣列元素...
NumPy學習筆記
example np.version np.array 1,2,3 4,5,6 np.zeros 3 3 np.ones 2 3,4 np.eye 3 np.range 5 0,1,2,3,4 np.random.rand 2,3 np.random.randint 5,size 2 3 value...