NumPy入門之數(shù)據(jù)存?。ㄒ唬?/h2>

csv文件(comma-Separated Value,逗號分隔值):一種文件格式存儲批量數(shù)據(jù)的文件。
局限性:只能有效存儲一維和二維數(shù)組。

Numpy讀取和寫入函數(shù)

讀?。?code>np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)

frame 參數(shù)表示讀入的來源,文件、字符或產(chǎn)生器,可以是.gz或.bz2d的壓縮文件
dtype 數(shù)據(jù)類型
delimiter 表示分隔字符串,默認為空格 若讀入文件為csv則應設置為','
unpack 如果為True,讀入屬性將分別寫入不同變量,默認False

寫入:np.savetxt(frame, array, fmt='%.18', delimiter=None)

frame參數(shù)表示文件、字符或產(chǎn)生器,可以是.gz或.bz2d的壓縮文件。
array 參數(shù)表示具有數(shù)據(jù)的數(shù)組。
fmt參數(shù)表示寫入文件的格式,例如:%d %.2f %.18e。
delimiter參數(shù)表示分隔字符串,默認為空格。保存為csv文件則應設置為','。

上述兩個函數(shù)np.loadtxt() np.savetxt()都只能有效存取一維和二維數(shù)組

多維數(shù)據(jù)的存取函數(shù)

對于ndarray數(shù)組對象a有寫入函數(shù)
a.tofile(frame, sep='', format='%s')

frame :文件、字符串名
sep :數(shù)據(jù)分割字符串,如果分隔字符串不指定,即為空串的時候,寫入文件為二進制
format:寫入數(shù)據(jù)的格式。

a = np.arange(24).reshape((2,3,4))
a.tofile("a.dat",sep=',', format='%d')

使用記事本打開a.dat文件

逗號分隔數(shù)據(jù)

a.tofile("b.dat", format='%d')
無分隔字符串,為二進制文件,無法正確識別

讀取函數(shù):
np.fromfile(frame, dtype=float, count=-1, sep='')

frame :文件、字符串
dtype:讀取的數(shù)據(jù)類型,默認dtype=float
count:讀入元素個數(shù),-1表示讀入整個文件
sep:數(shù)據(jù)分割字符串,如果分隔字符串不指定,即為空串的時候,寫入文件為二進制

讀入的文件為一維數(shù)組,故需要二維或者多維數(shù)組時需使用.reshape()函數(shù)設置

a1=np.fromfile("a.dat",dtype=np.int, sep=',')
a1

out:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])

a1.reshape(2,3,4)
Out: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
b1=np.fromfile("b.dat", dtype=np.int, )
b1

Out: 
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])

由此可見:該方法讀取是需要知道存取文件數(shù)組的維度和元素類型,故需配合使。

numpy便捷文件存取

np.save(fname, array)np.savez(fname, array)(壓縮格式 .npz)

np.load(fname)
需注意文件名要使用numpy自定義的 .npy數(shù)據(jù)格式

np.save("a.npy", a)
a.npy

數(shù)組元信息,數(shù)據(jù)類型,維度存在第一行中。

aload=np.load("a.npy")

aload
Out: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容