1. 程式人生 > >北京理工python資料分析與展示課單元二總結

北京理工python資料分析與展示課單元二總結

一、檔案讀取與儲存:

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的梯度。