.npy文件_Numpy库使用入门(六)文件的存取
BERT:就你還有npy?我還單著呢 ̄へ ̄
ERNIE:你想什么呢?我指的是numpy儲(chǔ)存數(shù)據(jù)的文件的后綴名.npy......(oT-T)尸
BERT:emm......
文件的存取
讀取CSV文件
將數(shù)組中的數(shù)據(jù)寫入CSV文件中
- 函數(shù):np.savetxt(frame,array,fmt='%.18e',delimiter=None)
- frame:文件、字符串或產(chǎn)生器,可以是.gz或.bz2的壓縮文件。
- array:存入文件的數(shù)組。
- fmt:寫入文件的格式,例如:%d %.2f %.18e。
- delimiter:分割字符串,默認(rèn)是任何空格。
打開編程環(huán)境:
import numpy as np a = np.arange(20).reshape(4,5) np.savetxt('a.csv',a,fmt='%.1f',delimiter=',')運(yùn)行后打開記事本:
0.0,1.0,2.0,3.0,4.0 5.0,6.0,7.0,8.0,9.0 10.0,11.0,12.0,13.0,14.0 15.0,16.0,17.0,18.0,19.0讀取CSV文件到數(shù)組中
- 函數(shù)np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
- frame:文件、字符串或產(chǎn)生器,可以是.gz或.bz2的壓縮文件。
- dtype:數(shù)據(jù)類型,可選。
- delimiter:分割字符串,默認(rèn)是任何空格。
- unpack:如果True,讀入屬性將分別寫入不同變量。
打開編程環(huán)境,我們讀入剛才的a.csv:
import numpy as np a = np.loadtxt('a.csv',dtype=np.int,delimiter=",") print(a)運(yùn)行結(jié)果:
[[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14][15 16 17 18 19]]總結(jié)
- 存入CSV文件:np.savetxt(),無返回值。
- 取CSV文件:np.loadtxt(),有返回值。
- 局限性:只能有效存取一維和二維數(shù)據(jù)。
存取多維數(shù)組的方法
將多維數(shù)據(jù)存入文件
- 函數(shù):a.tofile(frame,sep='',format='%s')
- frame:文件、字符串。
- sep:數(shù)據(jù)分割字符串,如果是空串,寫入文件為二進(jìn)制。
- format:寫入數(shù)據(jù)的格式。
再次打開編程環(huán)境(安利一波slight亮主題的pycharm):
import numpy as np a = np.arange(20).reshape(4,5) a.tofile("a.bat",sep=",",format='%d')我們得到了一個(gè)二進(jìn)制文件打開后:
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19可以看到,與savetxt函數(shù)不同,tofile輸出的文件并沒有體現(xiàn)數(shù)據(jù)的維度,而是將數(shù)組中的所有數(shù)據(jù)壓縮成一維再逐個(gè)輸出到文件中。
讀入二進(jìn)制文件
- 函數(shù):np.fromfile(frame,dtype=float,count=-1,sep='')
- frame:文件、字符串。
- dtype:讀取的數(shù)據(jù)類型。
- count:讀入元素個(gè)數(shù),-1表示讀入整個(gè)文件。
- sep:數(shù)據(jù)分割字符串,如果是空串,寫入文件為二進(jìn)制。
再試試:
import numpy as np a = np.fromfile("a.bat",dtype=np.int,sep=',').reshape(4,5) print(a)運(yùn)行結(jié)果:
[[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14][15 16 17 18 19]]np專用文件存取方式
np針對(duì)自身有一個(gè)非常簡(jiǎn)便的文件存取方式(其實(shí)筆者認(rèn)為上面兩種挺簡(jiǎn)單的了......),這個(gè)方法需要使用numpy特定的文件格式(.npy)
存入
- 存函數(shù):np.save(fname,array)或np.savez(fname,array)
- frame:文件名,以.npy為擴(kuò)展名,壓縮名為.npz。
- array:數(shù)組變量。
讀取
- 函數(shù):np.load(fname)
- frame:文件名,以.npy為擴(kuò)展名,壓縮名為.npz。
來試試這種(最簡(jiǎn)便的文件讀取方式):
import numpy as np a = np.arange(100).reshape(5,10,2) np.save("a.npy",a) b = np.load("a.npy") print(b)運(yùn)行結(jié)果:
[[[ 0 1][ 2 3][ 4 5]...[94 95][96 97][98 99]]] ?為什么這種用.npy文件存取的方式使用起來更簡(jiǎn)單呢?我們打開“a.npy”文件,會(huì)在看不懂的文件的第一行看到一些我們看得懂的:
揘UMPY? v {'descr': '<i4', 'fortran_order': False, 'shape': (5, 10, 2), }事實(shí)上np.save將np數(shù)組以二進(jìn)制形式存入.npy文件,并將np數(shù)組的原信息以鍵值對(duì)的形式(字典)存入.npy文件的第一行。這是為np量身打造的文件格式,所以我們?cè)谧x取時(shí)就不需要指定一些其他的參數(shù)了,原本的np數(shù)組信息早就存進(jìn)去了。
總結(jié)
以上是生活随笔為你收集整理的.npy文件_Numpy库使用入门(六)文件的存取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip打包后如何加入 xilinx_科普!
- 下一篇: windows打开的winform当前焦