chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

更高效的利用Jupyter+pandas進(jìn)行數(shù)據(jù)分析

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2021-03-12 15:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在使用Python進(jìn)行數(shù)據(jù)分析時(shí),Jupyter Notebook是一個非常強(qiáng)力的工具,在數(shù)據(jù)集不是很大的情況下,我們可以使用pandas輕松對txt或csv等純文本格式數(shù)據(jù)進(jìn)行讀寫。

然而當(dāng)數(shù)據(jù)集的維度或者體積很大時(shí),將數(shù)據(jù)保存并加載回內(nèi)存的過程就會變慢,并且每次啟動Jupyter Notebook時(shí)都需要等待一段時(shí)間直到數(shù)據(jù)重新加載, 這樣csv格式或任何其他純文本格式數(shù)據(jù)都失去了吸引力。

本文將對pandas支持的多種格式數(shù)據(jù)在處理數(shù)據(jù)的不同方面進(jìn)行比較,包含I/O速度、內(nèi)存消耗、磁盤占用空間等指標(biāo),試圖找出如何為我們的數(shù)據(jù)找到一個合適的格式的辦法!

格式說明

現(xiàn)在對本文進(jìn)行對比的幾種數(shù)據(jù)格式進(jìn)行說明。

CSV:最常用的數(shù)據(jù)格式

Pickle:用于序列化和反序列化Python對象結(jié)構(gòu)

MessagePack:類似于json,但是更小更塊

HDF5:一種常見的跨平臺數(shù)據(jù)儲存文件

Feather:一個快速、輕量級的存儲框架

Parquet:Apache Hadoop的列式存儲格式

指標(biāo)說明

為了找到格式來存儲數(shù)據(jù),本文選擇以下指標(biāo)進(jìn)行對比。

size_mb:帶有序列化數(shù)據(jù)幀的文件的大小

save_time:將數(shù)據(jù)幀保存到磁盤所需的時(shí)間

load_time:將先前轉(zhuǎn)儲的數(shù)據(jù)幀加載到內(nèi)存所需的時(shí)間

save_ram_delta_mb:在數(shù)據(jù)幀保存過程中最大的內(nèi)存消耗增長

load_ram_delta_mb:數(shù)據(jù)幀加載過程中最大的內(nèi)存消耗增長

注意,當(dāng)我們使用有效壓縮的二進(jìn)制數(shù)據(jù)格式(例如Parquet)時(shí),最后兩個指標(biāo)變得非常重要。它們可以幫助我們估算加載串行化數(shù)據(jù)所需的RAM數(shù)量,以及數(shù)據(jù)大小本身。我們將在下一部分中更詳細(xì)地討論這個問題。

對比

現(xiàn)在開始對前文介紹的5種數(shù)據(jù)格式進(jìn)行比較,為了更好地控制序列化的數(shù)據(jù)結(jié)構(gòu)和屬性我們將使用自己生成的數(shù)據(jù)集。 下面是生成測試數(shù)據(jù)的代碼,我們隨機(jī)生成具有數(shù)字和分類特征的數(shù)據(jù)集。數(shù)值特征取自標(biāo)準(zhǔn)正態(tài)分布。分類特征以基數(shù)為C的uuid4隨機(jī)字符串生成,其中2 <= C <= max_cat_size。

defgenerate_dataset(n_rows,num_count,cat_count,max_nan=0.1,max_cat_size=100): dataset,types={},{} defgenerate_categories(): fromuuidimportuuid4 category_size=np.random.randint(2,max_cat_size) return[str(uuid4())for_inrange(category_size)] forcolinrange(num_count): name=f'n{col}' values=np.random.normal(0,1,n_rows) nan_cnt=np.random.randint(1,int(max_nan*n_rows)) index=np.random.choice(n_rows,nan_cnt,replace=False) values[index]=np.nan dataset[name]=values types[name]='float32' forcolinrange(cat_count): name=f'c{col}' cats=generate_categories() values=np.array(np.random.choice(cats,n_rows,replace=True),dtype=object) nan_cnt=np.random.randint(1,int(max_nan*n_rows)) index=np.random.choice(n_rows,nan_cnt,replace=False) values[index]=np.nan dataset[name]=values types[name]='object' returnpd.DataFrame(dataset),types 現(xiàn)在我們以CSV文件保存和加載的性能作為基準(zhǔn)。將五個隨機(jī)生成的具有百萬個觀測值的數(shù)據(jù)集轉(zhuǎn)儲到CSV中,然后讀回內(nèi)存以獲取平均指標(biāo)。并且針對具有相同行數(shù)的20個隨機(jī)生成的數(shù)據(jù)集測試了每種二進(jìn)制格式。 同時(shí)使用兩種方法進(jìn)行對比:

1.將生成的分類變量保留為字符串

2.在執(zhí)行任何I/O之前將其轉(zhuǎn)換為pandas.Categorical數(shù)據(jù)類型

1.以字符串作為分類特征

下圖顯示了每種數(shù)據(jù)格式的平均I/O時(shí)間。這里有趣的發(fā)現(xiàn)是hdf的加載速度比csv更低,而其他二進(jìn)制格式的性能明顯更好,而feather和parquet則表現(xiàn)的非常好。

保存數(shù)據(jù)并從磁盤讀取數(shù)據(jù)時(shí)的內(nèi)存消耗如何?下一張圖片向我們展示了hdf的性能再次不那么好。但可以肯定的是,csv不需要太多額外的內(nèi)存來保存/加載純文本字符串,而feather和parquet則非常接近。

最后,讓我們看一下文件大小的對比。這次parquet顯示出非常好的結(jié)果,考慮到這種格式是為有效存儲大量數(shù)據(jù)而開發(fā)的,也是理所當(dāng)然。

2. 對特征進(jìn)行轉(zhuǎn)換

在上一節(jié)中,我們沒有嘗試有效地存儲分類特征,而是使用純字符串,接下來我們使用專用的pandas.Categorical類型再次進(jìn)行比較。

從上圖可以看到,與純文本csv相比,所有二進(jìn)制格式都可以顯示其真強(qiáng)大功能,效率遠(yuǎn)超過csv,因此我們將其刪除以更清楚地看到各種二進(jìn)制格式之間的差異。

可以看到feather和pickle擁有最快的I/O速度,接下來該比較數(shù)據(jù)加載過程中的內(nèi)存消耗了。下面的條形圖顯示了我們之前提到的有關(guān)parquet格式的情況。

為什么parquet內(nèi)存消耗這么高?因?yàn)橹灰诖疟P上占用一點(diǎn)空間,就需要額外的資源才能將數(shù)據(jù)解壓縮回?cái)?shù)據(jù)幀。即使文件在持久性存儲磁盤上需要適度的容量,也可能無法將其加載到內(nèi)存中。 最后我們看下不同格式的文件大小比較。所有格式都顯示出良好的效果,除了hdf仍然需要比其他格式更多的空間。

結(jié)論

正如我們的上面的測試結(jié)果所示,feather格式似乎是在多個Jupyter之間存儲數(shù)據(jù)的理想選擇。它顯示出很高的I/O速度,不占用磁盤上過多的內(nèi)存,并且在裝回RAM時(shí)不需要任何拆包。

當(dāng)然這種比較并不意味著我們應(yīng)該在每種情況下都使用這種格式。例如,不希望將feather格式用作長期文件存儲。此外,當(dāng)其他格式發(fā)揮最佳效果時(shí),它并未考慮所有可能的情況。所以我們也需要根據(jù)具體情況進(jìn)行選擇!

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1399

    瀏覽量

    120531
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    616

    瀏覽量

    29505
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1236

    瀏覽量

    26188

原文標(biāo)題:更高效的利用 Jupyter+pandas 進(jìn)行數(shù)據(jù)分析,6 種常用數(shù)據(jù)格式效率對比!

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    API數(shù)據(jù)分析:淘寶流量來源分析,渠道優(yōu)化!

    ? 在電商領(lǐng)域,流量來源分析是優(yōu)化營銷策略的核心。淘寶作為中國領(lǐng)先的電商平臺,其流量數(shù)據(jù)可通過API(應(yīng)用程序接口)高效獲取和分析。本技術(shù)帖將逐步指導(dǎo)您如何
    的頭像 發(fā)表于 01-23 13:42 ?167次閱讀
    API<b class='flag-5'>數(shù)據(jù)分析</b>:淘寶流量來源<b class='flag-5'>分析</b>,渠道優(yōu)化!

    利用拼多多用戶API進(jìn)行粉絲數(shù)據(jù)分析,有效提升用戶粘性

    這些API進(jìn)行粉絲數(shù)據(jù)分析,并基于分析結(jié)果制定增強(qiáng)用戶粘性的策略。 一、 拼多多用戶API概覽 拼多多開放平臺提供了豐富的API接口,涵蓋商品、交易、用戶、物流等多個維度。對于粉絲數(shù)據(jù)分析
    的頭像 發(fā)表于 12-30 10:38 ?215次閱讀
    <b class='flag-5'>利用</b>拼多多用戶API<b class='flag-5'>進(jìn)行</b>粉絲<b class='flag-5'>數(shù)據(jù)分析</b>,有效提升用戶粘性

    淘寶數(shù)據(jù)分析API:用戶行為洞察,精準(zhǔn)營銷決策!

    。本文將探討如何利用這些API實(shí)現(xiàn)用戶行為的深度洞察,并轉(zhuǎn)化為實(shí)際的營銷價(jià)值。 一、用戶行為數(shù)據(jù)的價(jià)值:從流量到洞察 用戶進(jìn)入店鋪或?yàn)g覽商品的每一個動作,都蘊(yùn)含著豐富的信息。傳統(tǒng)的數(shù)據(jù)分析可能停留在流量、轉(zhuǎn)化率等宏觀層面
    的頭像 發(fā)表于 12-25 14:12 ?260次閱讀
    淘寶<b class='flag-5'>數(shù)據(jù)分析</b>API:用戶行為洞察,精準(zhǔn)營銷決策!

    經(jīng)營數(shù)據(jù)分析可以通過哪些方式

    在數(shù)聚股份看來,提起經(jīng)營數(shù)據(jù)分析,大家往往會聯(lián)想到一些密密麻麻的數(shù)字表格,或是高級的數(shù)據(jù)建模手法,再或是華麗的數(shù)據(jù)報(bào)表。其實(shí),“ 分析 ”本身是每個人都具備的能力,對于業(yè)務(wù)決策者而言,
    的頭像 發(fā)表于 12-05 16:31 ?632次閱讀

    基于FPGA的高效內(nèi)存到串行數(shù)據(jù)傳輸模塊設(shè)計(jì)

    本文介紹了一個基于FPGA的內(nèi)存到串行數(shù)據(jù)傳輸模塊,該模塊設(shè)計(jì)用來高效地處理存儲器中的數(shù)據(jù)并傳輸至串行接口。項(xiàng)目中自定義的“datamover_mm2s_fpga_”方案利用異步FIF
    的頭像 發(fā)表于 11-12 14:31 ?4327次閱讀
    基于FPGA的<b class='flag-5'>高效</b>內(nèi)存到串<b class='flag-5'>行數(shù)據(jù)</b>傳輸模塊設(shè)計(jì)

    溫度循環(huán)測試后如何進(jìn)行數(shù)據(jù)記錄和分析?

    溫度循環(huán)測試后的數(shù)據(jù)記錄和分析是驗(yàn)證電能質(zhì)量在線監(jiān)測裝置精度穩(wěn)定性、功能完整性、硬件可靠性的核心環(huán)節(jié),需圍繞 “數(shù)據(jù)溯源可查、分析邏輯閉環(huán)、結(jié)論依據(jù)充分” 展開,結(jié)合測試標(biāo)準(zhǔn)(IEC
    的頭像 發(fā)表于 09-26 14:22 ?527次閱讀

    如何使用運(yùn)行數(shù)據(jù)趨勢分析驗(yàn)證裝置準(zhǔn)確性?

    利用運(yùn)行數(shù)據(jù)趨勢分析驗(yàn)證電能質(zhì)量在線監(jiān)測裝置準(zhǔn)確性,核心邏輯是 通過長期采集的電網(wǎng)運(yùn)行數(shù)據(jù),判斷其趨勢是否符合電網(wǎng)實(shí)際規(guī)律、是否具備穩(wěn)定性與一致性 —— 若裝置準(zhǔn)確,其輸出的
    的頭像 發(fā)表于 09-18 10:33 ?486次閱讀
    如何使用運(yùn)<b class='flag-5'>行數(shù)據(jù)</b>趨勢<b class='flag-5'>分析</b>驗(yàn)證裝置準(zhǔn)確性?

    如何有效利用高光譜成像技術(shù)提升數(shù)據(jù)分析效率

    隨著人工智能和大數(shù)據(jù)技術(shù)的快速發(fā)展,高光譜成像技術(shù)作為一種融合光譜信息與空間影像的新興技術(shù),正日益成為提升數(shù)據(jù)分析效率的重要工具。在農(nóng)業(yè)監(jiān)測、環(huán)境保護(hù)、礦產(chǎn)勘探等多個行業(yè)中,高光譜成像通過獲取精準(zhǔn)
    的頭像 發(fā)表于 09-11 16:13 ?821次閱讀
    如何有效<b class='flag-5'>利用</b>高光譜成像技術(shù)提升<b class='flag-5'>數(shù)據(jù)分析</b>效率

    普迪飛 Exensio?數(shù)據(jù)分析平臺 | Test Operations解鎖半導(dǎo)體測試新紀(jì)元

    TestOperations是Exensio數(shù)據(jù)分析平臺的四個主要模塊之一。T-Ops模塊旨在幫助集成器件制造商(IDM)、無晶圓廠半導(dǎo)體公司(Fabless)和外包半導(dǎo)體(產(chǎn)品)封測廠(OSAT
    的頭像 發(fā)表于 08-19 13:53 ?1211次閱讀
    普迪飛 Exensio?<b class='flag-5'>數(shù)據(jù)分析</b>平臺 | Test Operations解鎖半導(dǎo)體測試新紀(jì)元

    如何通過數(shù)據(jù)分析識別設(shè)備故障模式?

    通過數(shù)據(jù)分析識別設(shè)備故障模式,本質(zhì)是從聲振溫等多維數(shù)據(jù)中提取故障特征,建立 “數(shù)據(jù)特征 - 故障類型” 的映射關(guān)系,核心可通過特征提取、模式匹配、趨勢分析三步實(shí)現(xiàn),精準(zhǔn)定位故障根源與發(fā)
    的頭像 發(fā)表于 08-19 11:14 ?841次閱讀
    如何通過<b class='flag-5'>數(shù)據(jù)分析</b>識別設(shè)備故障模式?

    構(gòu)建自定義電商數(shù)據(jù)分析API

    按需分析結(jié)果,幫助團(tuán)隊(duì)快速響應(yīng)市場變化。本文將逐步指導(dǎo)您如何從頭構(gòu)建這樣一個API,確保它可靠、高效且可擴(kuò)展。 1. 理解電商數(shù)據(jù)分析基礎(chǔ) 電商數(shù)據(jù)通常包括銷售記錄、用戶行為、產(chǎn)品信息
    的頭像 發(fā)表于 07-17 14:44 ?596次閱讀
    構(gòu)建自定義電商<b class='flag-5'>數(shù)據(jù)分析</b>API

    AI數(shù)據(jù)分析儀設(shè)計(jì)原理圖:RapidIO信號接入 平板AI數(shù)據(jù)分析

    AI數(shù)據(jù)分析儀, 平板數(shù)據(jù)分析儀, 數(shù)據(jù)分析儀, AI邊緣計(jì)算, 高帶寬數(shù)據(jù)輸入
    的頭像 發(fā)表于 07-17 09:20 ?743次閱讀
    AI<b class='flag-5'>數(shù)據(jù)分析</b>儀設(shè)計(jì)原理圖:RapidIO信號接入 平板AI<b class='flag-5'>數(shù)據(jù)分析</b>儀

    如何使用協(xié)議分析進(jìn)行數(shù)據(jù)分析與可視化

    使用協(xié)議分析進(jìn)行數(shù)據(jù)分析與可視化,需結(jié)合數(shù)據(jù)捕獲、協(xié)議解碼、統(tǒng)計(jì)分析及可視化工具,將原始數(shù)據(jù)轉(zhuǎn)化為可解讀的圖表和報(bào)告。以下是詳細(xì)步驟及關(guān)鍵
    發(fā)表于 07-16 14:16

    B1505A 功率器件分析儀/曲線追蹤儀

    。 B1505A 還支持功率器件的片上測試,因此無需事先封裝器件。 在實(shí)驗(yàn)室中進(jìn)行器件測試時(shí),這個功能可以顯著縮短周轉(zhuǎn)時(shí)間(TAT)。 配有直觀的 15 英寸觸摸屏界面,無需借助外部的個人電腦,即可進(jìn)行數(shù)據(jù)分析
    發(fā)表于 06-21 18:38

    labview進(jìn)行數(shù)據(jù)采集

    請問在labview中進(jìn)行數(shù)據(jù)采集,為保證不同設(shè)備之間采集數(shù)據(jù)的同步性,準(zhǔn)備利用PPS進(jìn)行觸發(fā)開始任務(wù),利用DAQmx設(shè)備內(nèi)部時(shí)鐘源來設(shè)置
    發(fā)表于 04-27 10:19