數(shù)據(jù)的CSV文件存取
CSV (Comma‐Separated Value, 逗號(hào)分隔值)
CSV是一種常見的文件格式媚媒,用來存儲(chǔ)批量數(shù)據(jù)养泡。
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
- frame : 文件、字符串或產(chǎn)生器员魏,可以是.gz或.bz2的壓縮文件
- array : 存入文件的數(shù)組
- fmt : 寫入文件的格式乌叶,例如:%d %.2f %.18e
- delimiter : 分割字符串,默認(rèn)是任何空格
np.loadtxt(frame, dtype=np.float, delimiter=None讯私, unpack=False)
- frame : 文件热押、字符串或產(chǎn)生器西傀,可以是.gz或.bz2的壓縮文件
- dtype : 數(shù)據(jù)類型,可選
- delimiter : 分割字符串楞黄,默認(rèn)是任何空格
- unpack : 如果True,讀入屬性將分別寫入不同變量
CSV文件的局限性:
CSV只能有效存儲(chǔ)一維和二維數(shù)組
np.savetxt() np.loadtxt()只能有效存取一維和二維數(shù)組
多維數(shù)據(jù)的存取
a.tofile(frame, sep='', format='%s')
- frame : 文件抡驼、字符串
- sep : 數(shù)據(jù)分割字符串鬼廓,如果是空串,寫入文件為二進(jìn)制致盟,可選
- format : 寫入數(shù)據(jù)的格式
np.fromfile(frame, dtype=float, count=‐1, sep='')
- frame : 文件碎税、字符串
- dtype : 讀取的數(shù)據(jù)類型
- count : 讀入元素個(gè)數(shù),‐1表示讀入整個(gè)文件馏锡,可選
- sep : 數(shù)據(jù)分割字符串雷蹂,如果是空串,寫入文件為二進(jìn)制杯道,可選
需要注意:
該方法需要讀取時(shí)知道存入文件時(shí)數(shù)組的維度和元素類型
a.tofile()和np.fromfile()需要配合使用
可以通過元數(shù)據(jù)文件來存儲(chǔ)額外信息
Numpy的便捷文件存取
np.save(fname, array) 或 np.savez(fname, array)
- fname : 文件名匪煌,以.npy為擴(kuò)展名,壓縮擴(kuò)展名為.npz
- array : 數(shù)組變量
np.load(fname)
- fname : 文件名党巾,以.npy為擴(kuò)展名萎庭,壓縮擴(kuò)展名為.npz
Numpy的隨機(jī)數(shù)函數(shù)
Numpy的random子庫(kù)
np.random.*
np.random的隨機(jī)數(shù)函數(shù)
函數(shù) | 說明 |
---|---|
rand(d0,d1,..,dn) | 根據(jù)d0‐dn創(chuàng)建隨機(jī)數(shù)數(shù)組,浮點(diǎn)數(shù)齿拂,[0,1)驳规,均勻分布 |
randn(d0,d1,..,dn) | 根據(jù)d0‐dn創(chuàng)建隨機(jī)數(shù)數(shù)組,標(biāo)準(zhǔn)正態(tài)分布 |
randint(low[,high,shape]) | 根據(jù)shape創(chuàng)建隨機(jī)整數(shù)或整數(shù)數(shù)組署海,范圍是[low, high) |
seed(s) | 隨機(jī)數(shù)種子吗购,s是給定的種子值 |
shuffle(a) | 根據(jù)數(shù)組a的第1軸進(jìn)行隨排列,改變數(shù)組x |
permutation(a) | 根據(jù)數(shù)組a的第1軸產(chǎn)生一個(gè)新的亂序數(shù)組砸狞,不改變數(shù)組x |
choice(a[,size,replace,p]) | 從一維數(shù)組a中以概率p抽取元素捻勉,形成size形狀新數(shù)組,replace表示是否可以重用元素刀森,默認(rèn)為False |
uniform(low,high,size) | 產(chǎn)生具有均勻分布的數(shù)組,low起始值,high結(jié)束值,size形狀 |
normal(loc,scale,size) | 產(chǎn)生具有正態(tài)分布的數(shù)組,loc均值,scale標(biāo)準(zhǔn)差,size形狀 |
poisson(lam,size) | 產(chǎn)生具有泊松分布的數(shù)組,lam隨機(jī)事件發(fā)生率,size形狀 |
Numpy的統(tǒng)計(jì)函數(shù)
Numpy直接提供的統(tǒng)計(jì)類函數(shù)贯底,np.*
函數(shù) | 說明 |
---|---|
sum(a, axis=None) | 根據(jù)給定軸axis計(jì)算數(shù)組a相關(guān)元素之和,axis整數(shù)或元組 |
mean(a, axis=None) | 根據(jù)給定軸axis計(jì)算數(shù)組a相關(guān)元素的期望撒强,axis整數(shù)或元組 |
average(a,axis=None,weights=None) | 根據(jù)給定軸axis計(jì)算數(shù)組a相關(guān)元素的加權(quán)平均值 |
std(a, axis=None) | 根據(jù)給定軸axis計(jì)算數(shù)組a相關(guān)元素的標(biāo)準(zhǔn)差 |
var(a, axis=None) | 根據(jù)給定軸axis計(jì)算數(shù)組a相關(guān)元素的方差 |
min(a) max(a) | 計(jì)算數(shù)組a中元素的最小值禽捆、最大值 |
argmin(a) argmax(a) | 計(jì)算數(shù)組a中元素最小值、最大值的降一維后下標(biāo) |
unravel_index(index, shape) | 根據(jù)shape將一維下標(biāo)index轉(zhuǎn)換成多維下標(biāo) |
ptp(a) | 計(jì)算數(shù)組a中元素最大值與最小值的差 |
median(a) | 計(jì)算數(shù)組a中元素的中位數(shù)(中值 |
axis=None 是統(tǒng)計(jì)函數(shù)的標(biāo)配參數(shù)
Numpy的梯度函數(shù)
函數(shù) | 說明 |
---|---|
np.gradient(f) | 計(jì)算數(shù)組f中元素的梯度飘哨,當(dāng)f為多維時(shí)胚想,返回每個(gè)維度梯度 |
梯度:連續(xù)值之間的變化率,即斜率
XY坐標(biāo)軸連續(xù)三個(gè)X坐標(biāo)對(duì)應(yīng)的Y軸值:a, b, c芽隆,其中浊服,b的梯度是: (c‐a)/2
只有一側(cè)值時(shí)统屈,一側(cè)值與之相減就是梯度值
Reference:
中國(guó)大學(xué)MOOC北京理工大學(xué)Python數(shù)據(jù)分析與展示課程嵩天老師課件
課程主頁(yè)