亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解

 更新時間:2019年06月25日 16:51:48   作者:淡淡博客  
這篇文章主要介紹了Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解,用python讀取二進(jìn)制文件,這里主要用到struct包,而這個包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以參考下

本文所用環(huán)境:

Python 3.6.5 |Anaconda custom (64-bit)|

引言

由于某些原因,需要用python讀取二進(jìn)制文件,這里主要用到struct包,而這個包里面的方法主要是unpack、pack、calcsize。詳細(xì)介紹可以看:Python Struct 官方文檔。這里主要討論,python二進(jìn)制轉(zhuǎn)浮點(diǎn)數(shù)的操作。

python中一個float類型的數(shù)占4個字節(jié)。

二進(jìn)制數(shù)據(jù)轉(zhuǎn)float,可以用struct.unpack()來實(shí)現(xiàn)。

小文件讀取

較小的文件,可以一次讀?。?/p>

首先導(dǎo)入所需的包:

import numpy as np
import struct
Python

例如:我需要讀取一個名為filename,存放著形狀為[100,1025]的浮點(diǎn)數(shù)的文件??梢圆捎靡韵罗k法

# 加載測試數(shù)據(jù)
f = open('filename','rb')
# 102500為文檔中包含的數(shù)字個數(shù),而一個浮點(diǎn)數(shù)占4個字節(jié)
data_raw = struct.unpack('f'*102500,f.read(4*102500))
f.close()
verify_data = np.asarray(verify_data_raw).reshape(-1,1025)

大文件處理方法

我需要處理的文件大小有38.1G,存放著[10000000,1025]大小的向量。

關(guān)于大文件的處理,我參考了這文章,但是,這個方法不能很好的將二進(jìn)制文件轉(zhuǎn)換成浮點(diǎn)數(shù)。

所以我想到了另外一種辦法:

通過Linux命令切割文件

通過split命令將38.1G的文件按照指定大小切割,

split -b 820000k -a 2 filename data_ 

上述代碼的意思是,指定每塊大小為820000k,-a 2代表2位數(shù)命名,‘data_'代表前綴是'data_'

最終生成49個文件(字典序 aa – bw),前48個文件每個204800行 最后一個文件 169600行

通過python循環(huán)讀取文件

首先構(gòu)建詞匯表:

voc = ['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x',
'y','z']
voc_short = ['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v']

為了方便讀取,將49個二進(jìn)制文件轉(zhuǎn)換成numpy專用二進(jìn)制格式*.npy

for i in voc:
data_name = 'data_a'+str(i)
f = open(data_name,'rb')
data_raw = struct.unpack('f'*209920000,f.read(4*209920000))
f.close()
data = np.asarray(data_raw).reshape(-1,1025)
np.save(data_name+'.npy',data) # 保存data_a*.npy文件
for i in voc_short:
data_name = 'data_b'+str(i)
f = open(data_name,'rb')
data_raw = struct.unpack('f'*209920000,f.read(4*209920000))
f.close()
data = np.asarray(data_raw).reshape(-1,1025)
np.save(data_name+'.npy',data) # 保存data_b*.npy文件
data_name = 'data_bw'
f = open(data_name,'rb')
data_raw = struct.unpack('f'*173840000,f.read(4*173840000))
np.save(data_name+'.npy',data_raw) # 保存data_bw.npy文件

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何將tensorflow訓(xùn)練好的模型移植到Android (MNIST手寫數(shù)字識別)

    如何將tensorflow訓(xùn)練好的模型移植到Android (MNIST手寫數(shù)字識別)

    這篇文章主要介紹了將tensorflow訓(xùn)練好的模型移植到Android (MNIST手寫數(shù)字識別),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 關(guān)于pytorch中網(wǎng)絡(luò)loss傳播和參數(shù)更新的理解

    關(guān)于pytorch中網(wǎng)絡(luò)loss傳播和參數(shù)更新的理解

    今天小編就為大家分享一篇關(guān)于pytorch中網(wǎng)絡(luò)loss傳播和參數(shù)更新的理解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn)

    Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn)

    這篇文章主要介紹了Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python密碼學(xué)周期置換密碼學(xué)習(xí)

    python密碼學(xué)周期置換密碼學(xué)習(xí)

    這篇文章主要為大家介紹了python密碼學(xué)周期置換密碼的學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Pandas實(shí)現(xiàn)數(shù)據(jù)拼接的操作方法詳解

    Pandas實(shí)現(xiàn)數(shù)據(jù)拼接的操作方法詳解

    Python處理大規(guī)模數(shù)據(jù)集的時候經(jīng)常需要使用到合并、鏈接的方式進(jìn)行數(shù)據(jù)集的整合,本文為大家主要介紹了.merge()、?.join()?和?.concat()?三種方法,感興趣的可以了解一下
    2022-04-04
  • Python GUI庫Tkiner使用方法代碼示例

    Python GUI庫Tkiner使用方法代碼示例

    這篇文章主要介紹了Python GUI庫Tkiner使用方法代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python持續(xù)監(jiān)聽文件變化代碼實(shí)例

    Python持續(xù)監(jiān)聽文件變化代碼實(shí)例

    這篇文章主要介紹了Python持續(xù)監(jiān)聽文件變化代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Pandas時間序列重采樣(resample)方法中closed、label的作用詳解

    Pandas時間序列重采樣(resample)方法中closed、label的作用詳解

    這篇文章主要介紹了Pandas時間序列重采樣(resample)方法中closed、label的作用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 基于pytorch實(shí)現(xiàn)運(yùn)動鞋品牌識別功能

    基于pytorch實(shí)現(xiàn)運(yùn)動鞋品牌識別功能

    這篇文章主要給大家介紹了關(guān)于如何基于pytorch實(shí)現(xiàn)運(yùn)動鞋品牌識別功能,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PyTorch具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2024-02-02
  • Python2升級/安裝pip報(bào)錯問題及解決

    Python2升級/安裝pip報(bào)錯問題及解決

    這篇文章主要介紹了Python2升級/安裝pip報(bào)錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論