import numpy as np
#陣列索引
arr = np.arange(10)
print(arr[2])
print(arr[::2])
print(arr[-1])
#二維陣列的索引
#(1)位置索引連續
arr2 = np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])
print(arr2)
#print(arr2[行索引值,列索引值])
print(arr2[0,1])
print(arr2[1,2:])
print(arr2[1:,:2])
#[[4 5]
[7 8]]
#(2) 位置索引不連續
print(arr2[(0,0,1,1),(0,1,3,4)]) #[1 2 7 8] 前面元組取行,後面元組取列
(3)bool值取值
mask = np.array([2,0,1],dtype = np.bool)
print(mask)
print(arr2[mask,2])
#一般不採用
mak1 = np.array([1,1,0],dtype=np.bool)
mak2 = np.array([0,1,0,1,0],dtype=np.bool)
print(arr2[mak1,mak2]) #注意 --對應取法
#陣列變換形態
1.reshape *****>shape
arr = np.arange(12)
arr2 = arr.reshape(3,4)
print(arr2)
2.資料展平:
print("展平之後的陣列",arr3)
print("陣列橫向展平",arr2.flantten())
print("陣列縱向展平",arr2.flantten('f'))
3.陣列組合:
arr1 = np.arange(12).reshape(3,4)
arr2 = 3*arr1
print(arr2)
print("橫向組合",np.hstack((arr1,arr2)))
print("縱向組合",np.vstack((arr1,arr2)))
#concatenate組合
print("橫向組合:\n",np.concatenate((arr1,arr2),axis =1 )")
print("縱向組合:\n",np.concatenate((arr1,arr2),axis = 0 ))
#陣列分割
#hsplit,vsplit,split
arr = np.arange(16).reshape(4,4)
print("橫向分割",np.hsplit(arr,2))
print(np.vsplit(arr,2))
print("橫向變化",np.split(arr,2,axis=1)) #軸是豎著的,結果橫向切少了
print("縱向變化",np.split(arr,2,axis=0)) #軸是橫著的,結果縱向切少了
numpy 陣列索引陣列
在numpy中,陣列除了可以被整數索引,還可以被陣列索引 a b 就是已陣列b的元素為索引,讀取陣列a的值 當被索引陣列a是一維陣列,b是一維或則多維陣列時,結果維度維度與索引陣列b相同。a np.array 7,8,9,10 b np.array 3,1 1,2 print a a print b...
Numpy 陣列合併
對於乙個array的合併,我們可以想到按行 按列等多種方式進行合併。import numpy as np a np.array 1 2,3 4,5 6 b np.array 6 5,4 3,2 1 print a print b print np.vstack a,b 沿著豎直方向將矩陣堆疊起來 c...
Numpy 中陣列的分割
來自 python資料分析基礎教程 numpy 學習指南 第2版 下面要介紹的陣列分割方法有 0.建立乙個陣列 a arange 9 reshape 3,3 print a 1.水平分割 下面的 將把陣列沿著水平方向分割為3個相同大小的子陣列 b hsplit a,3 print b 或者呼叫spl...