第三天:numpy庫
PS:
這個好像是Python2.X版本的使用。
這個課件的numpy的介紹還是太少了,有點凌亂的感覺,要是後面還是要以《利用Python進行資料分析》做numpy和pandas課件筆記比較好。
要學會和掌握,通過實戰,但是至少要懂得numpy的方式。
一、numpy(numeric Python)
1.定義:
高效方便的科學計算工具
2.優勢:
2.1方便處理向量,矩陣
2.2相比於MATLAB免費
3.簡單實用(版本查詢)
import numpy as np
np.version.full_version
二、多維陣列(homogeneous multidimensional)
1.一維陣列
a=np.arange(20)
numpy.ndarray
a=a.reshape(4,5)#這個在《利用Python進行資料分析》算是numpy的高階用法
print(a)
a=a.reshape(2,2,5)#2個數組,2和5是2row,5col
print(a)
2.簡單要素描繪
檢視維度:
a.ndim
檢視維度大小:
a.shape
檢視全部的元素個數:
a.size
檢視元素型別:
a.dtype
檢視元素站位(bytes):
a.dtype
三、建立陣列
1.高維陣列轉換巢狀列表:
raw=[1,2,3,4,5]
a=np.array(raw)
raw=[[0,1,2,3,4],[5,6,7,8,9]]
b=np.array(raw)
2.0陣列:
d=(4,5)
np.zeros(d)
3.1陣列
d=(4,5)
np.ones(d,dtype=int)
4.隨機陣列
生成[0,1)區間的隨機數陣列:
np.random.rand(5)
四、陣列操作
1.加減乘除開根(這個的資料處理,必須是兩個陣列的結構要一致,對應的位置進行處理)
2.生成二維隨機陣列
a=np.arange(20).reshape(4,5)
3.步長生成:arange(起始,終止,步長)
a=np.arange(2,45,3).reshape(5,3)
4.生成一維陣列
np.linspace(0,2,9)
五、陣列元素訪問
訪問:
a=np.array([[3.2,1.5],[2.5,4]])
print(a[0][1])
print(a[0,1])
修改:
a[0][1]=值
廣播機制:
1. b=a
a修改
b修改
2. b=a.copy()
a修改
b不修改
取矩陣中的指定列:
a=np.arange(20).reshape(4,5)
print(a[:,[1,3]])#先行後列,這裡是指所有行,1,3是指第1列和第3列
篩選:
a[;,2][a[:,0]>5]
查詢指定值:
loc=np.where(a==值)
print(loc)
print(a[loc[0][0],loc[1][0]])
六、陣列操作
1.矩陣轉置
a=np.random.rand(2,4)
a=np.transpose(a)
b=np.random.rand(2,4)
b=np.mat(b)
print(b.T)#轉置
2.矩陣求逆
import numpy.linalg as nlg
a = np.random.rand(2,2)
a = np.mat(a)
print ("a:")
print(a)
ia = nlg.inv(a)
print( "inverse of a:")
print (ia)
print ("a * inv(a)")
print (a * ia)
3.求特徵值和特徵向量
a = np.random.rand(3,3)
eig_value, eig_vector = nlg.eig(a)
print( "eigen value:")
print( eig_value)
print( "eigen vector:")
print(eig_vector)
4.拼接兩個向量
1.column_stack函式
a = np.array((1,2,3))
b = np.array((2,3,4))
print np.column_stack((a,b))
2.vstack,hstack函式
a = np.random.rand(2,2)
b = np.random.rand(2,2)
print( "a:")
print (a)
print ("b:")
print (b)
c = np.hstack([a,b])
d = np.vstack([a,b])
print( "horizontal stacking a and b:")
print( c)
print ("vertical stacking a and b:")
print( d)
七、缺失值
a = np.random.rand(2,2)
a[0, 1] = np.nan
print (np.isnan(a))
[[False True]
[False False]]