北京理工python資料分析與展示課單元二總結
阿新 • • 發佈:2018-12-24
一、檔案讀取與儲存:
1:savetxt()與loadtxt()函式
import numpy as np
numpy.savetxt(frame, array, fmt='%.18e', delimiter=None)
#frame:檔名,字串,或者產生器,可以是.gz或者.bz2的壓縮檔案。
#array:存入檔案的陣列
#fmt:寫入檔案的格式,如:%d, %.2f, %.18e.
#delimiter:分割字串,預設是空格。
np.savetxt('a.csv', a, fmt = '%d', delimiter=',')
numpy.loadtxt(frame, dtype = np.float , delimiter=None, unpack=False)
#frame:檔名,字串,或者產生器,可以是.gz或者.bz2的壓縮檔案。
#dtype:資料型別,可選。
#delimiter:分割字串,預設是空格。
#unpack:如果是True,讀入屬性則被寫入不同變數。(如果讀入的是個二維矩陣,就是按列讀取)
np.loadtxt('a.csv', delimiter=',')
2、多維資料讀取
import numpy as np
a.tofile(frame, sep='', format ='%s')
#frame: 檔案,字串
#sep: 資料分割字串,如果是空串,則寫入為二進位制。
#format:寫入資料格式。
a = np.arange(100).reshape(5, 10, 2)
a.tofile('b.dat', sep = ",", format = '%d')
np.fromfile(frame, dtype = float, count=-1, sep ='')
#frame: 檔案,字串
#dtype:讀取的資料型別
#count:讀入元素的個數,-1表示讀入整個檔案
#sep:資料分割字串,如果是空串,寫入資料為二進位制。
c = np.fromfile('b.dat', dtype=np.int, sep=',').reshape(5, 10, 2)
該方法必須提前知道維度資訊,才能還原多維資料
3、numpy的便捷檔案存取。
import numpy as np
np.save(fname, array) #不壓縮
np.savez(fname, array)#壓縮
#frame:檔名,以.npy為拓展名,壓縮拓展名為.npz
#array:陣列變數
np.load(fname)
二:numpy.random庫
函式 | 說明 |
---|---|
rand(x1,x2,x3,,,xn) | 根據維度(x1,x2,x3,,xn)建立隨機陣列,float[0,1),均勻分佈, |
randn(x1,x2,x3,,,xn) | 同上,不過是標準正態分佈 |
randint(low[,high,shape]) | 根據shape建立隨機整數陣列,範圍是[low,high] |
seed(s) | 隨機種子,s是給定的種子值。 |
shuffle(a) | 根據陣列a的第1軸產生一個新的亂序陣列,改變陣列a |
permutation(a) | 根據陣列a的第1軸產生一個新的亂序陣列,不改變a |
choice(a,[,size,replace,p]) | 從一維陣列中以概率p抽取元素,形成size形狀新陣列replace表示是否重用元素,預設為False.例:np.random.choice(b,(3,2),p=b/np.sum(b)),b矩陣中數值越大,被選取概率越大。 |
uniform(low, high, size) | 產生均勻分佈數值,low-high,size形狀 |
normal(loc,scale,size) | 產生正態分佈,loc均值,scale標準差,size形狀 |
poisson(lam,size) | 產生泊松分佈,lam為隨機事件發生率,size為形狀. |
統計函式:
函式 | 說明 |
---|---|
sum(a,axis=None) | 根據axis軸,計算元素,axis為整數或者元組 |
mean(a,axis=None) | 根據axis軸,計算期望,axis為整數或者元組 |
average(a,axis=None,weights=None) | 根據axis軸,計算a中相關元素加權平均 |
std(a,axis=None) | 根據axis,計算相關元素的標準差 |
var(a,axis=None) | 根據axis計算陣列方差 |
min(a),max(a) | 計算a的最大最小值 |
argmin(a),argmax(a) | 計算a最大最小值,下降到一維後的下標 |
unravel_index(index,shape) | 根據shape將一維下標index轉化成多維座標 |
ptp(a) | 計算a中最大最小值的差 |
median(a) | 計算陣列種元素中位數。 |
gradient(a) | 就算f的梯度。 |