日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.npy文件_Numpy库使用入门(六)文件的存取

發(fā)布時(shí)間:2024/7/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .npy文件_Numpy库使用入门(六)文件的存取 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ERNIE:BERT,你看到我的npy了嗎,我記得我放在這個(gè)文件夾里的呀(」><)」
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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。