.npy文件_Numpy库使用入门(六)文件的存取
生活随笔
收集整理的這篇文章主要介紹了
.npy文件_Numpy库使用入门(六)文件的存取
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ERNIE:BERT,你看到我的npy了嗎,我記得我放在這個文件夾里的呀(」><)」
BERT:就你還有npy?我還單著呢 ̄へ ̄
ERNIE:你想什么呢?我指的是numpy儲存數(shù)據(jù)的文件的后綴名.npy......(oT-T)尸
BERT:emm......
BERT:就你還有npy?我還單著呢 ̄へ ̄
ERNIE:你想什么呢?我指的是numpy儲存數(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:分割字符串,默認是任何空格。
打開編程環(huán)境:
import numpy as np a = np.arange(20).reshape(4,5) np.savetxt('a.csv',a,fmt='%.1f',delimiter=',')運行后打開記事本:
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:分割字符串,默認是任何空格。
- unpack:如果True,讀入屬性將分別寫入不同變量。
打開編程環(huán)境,我們讀入剛才的a.csv:
import numpy as np a = np.loadtxt('a.csv',dtype=np.int,delimiter=",") print(a)運行結果:
[[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14][15 16 17 18 19]]總結
- 存入CSV文件:np.savetxt(),無返回值。
- 取CSV文件:np.loadtxt(),有返回值。
- 局限性:只能有效存取一維和二維數(shù)據(jù)。
存取多維數(shù)組的方法
將多維數(shù)據(jù)存入文件
- 函數(shù):a.tofile(frame,sep='',format='%s')
- frame:文件、字符串。
- sep:數(shù)據(jù)分割字符串,如果是空串,寫入文件為二進制。
- 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')我們得到了一個二進制文件打開后:
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ù)壓縮成一維再逐個輸出到文件中。
讀入二進制文件
- 函數(shù):np.fromfile(frame,dtype=float,count=-1,sep='')
- frame:文件、字符串。
- dtype:讀取的數(shù)據(jù)類型。
- count:讀入元素個數(shù),-1表示讀入整個文件。
- sep:數(shù)據(jù)分割字符串,如果是空串,寫入文件為二進制。
再試試:
import numpy as np a = np.fromfile("a.bat",dtype=np.int,sep=',').reshape(4,5) print(a)運行結果:
[[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14][15 16 17 18 19]]np專用文件存取方式
np針對自身有一個非常簡便的文件存取方式(其實筆者認為上面兩種挺簡單的了......),這個方法需要使用numpy特定的文件格式(.npy)
存入
- 存函數(shù):np.save(fname,array)或np.savez(fname,array)
- frame:文件名,以.npy為擴展名,壓縮名為.npz。
- array:數(shù)組變量。
讀取
- 函數(shù):np.load(fname)
- frame:文件名,以.npy為擴展名,壓縮名為.npz。
來試試這種(最簡便的文件讀取方式):
import numpy as np a = np.arange(100).reshape(5,10,2) np.save("a.npy",a) b = np.load("a.npy") print(b)運行結果:
[[[ 0 1][ 2 3][ 4 5]...[94 95][96 97][98 99]]] ?為什么這種用.npy文件存取的方式使用起來更簡單呢?我們打開“a.npy”文件,會在看不懂的文件的第一行看到一些我們看得懂的:
揘UMPY? v {'descr': '<i4', 'fortran_order': False, 'shape': (5, 10, 2), }事實上np.save將np數(shù)組以二進制形式存入.npy文件,并將np數(shù)組的原信息以鍵值對的形式(字典)存入.npy文件的第一行。這是為np量身打造的文件格式,所以我們在讀取時就不需要指定一些其他的參數(shù)了,原本的np數(shù)組信息早就存進去了。
總結
以上是生活随笔為你收集整理的.npy文件_Numpy库使用入门(六)文件的存取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip打包后如何加入 xilinx_科普!
- 下一篇: windows打开的winform当前焦