乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      再見(jiàn) CSV,速度提升 150 倍!

       西北望msm66g9f 2021-09-16

      為什么要和CSV再見(jiàn)?

      大家好,我是黃同學(xué)??
      來(lái)介紹下為什么要和CSV再見(jiàn)。其實(shí)也談不上徹底再見(jiàn)吧,日常還是要用的,這里再介紹一個(gè)更加高效的數(shù)據(jù)格式。
      Python處理數(shù)據(jù)時(shí)保存和加載文件屬于日常操作了,尤其面對(duì)大數(shù)據(jù)量時(shí)我們一般都會(huì)保存成CSV格式,而不是Excel。一是因?yàn)?code>Excel有最大行數(shù)1048576的限制,二是文件占用空間更大,保存和加載速度很慢。
      雖然用CSV沒(méi)有行數(shù)限制,相對(duì)輕便,但是面對(duì)大數(shù)據(jù)量時(shí)還是略顯拉夸,百萬(wàn)數(shù)據(jù)量?jī)?chǔ)存加載時(shí)也要等好久。。不過(guò)很多同學(xué)都借此機(jī)會(huì)抻抻懶腰、摸摸魚(yú),充分利用時(shí)間也不錯(cuò)圖片。
      其實(shí),CSV 并不是唯一的數(shù)據(jù)存儲(chǔ)格式。今天和大家介紹一個(gè)速度超快、更加輕量級(jí)的二進(jìn)制格式保存格式:feather

      Feather是什么?

      Feather 是一種用于存儲(chǔ)數(shù)據(jù)幀的數(shù)據(jù)格式。它最初是為了 PythonR 之間快速交互而設(shè)計(jì)的,初衷很簡(jiǎn)單,就是盡可能高效地完成數(shù)據(jù)在內(nèi)存中轉(zhuǎn)換的效率。
      現(xiàn)在 Feather 也不僅限于 PythonR 了,基本每種主流的編程語(yǔ)言中都可以用 Feather 文件。不過(guò),要說(shuō)明下,它的數(shù)據(jù)格式并不是為長(zhǎng)期存儲(chǔ)而設(shè)計(jì)的,一般的短期存儲(chǔ)。

      如何在Python中操作Feather?

      Python 中,可以通過(guò) pandasFeather 兩種方式操作。首先需要安裝feather-format。
      # pip 
      pip install feather -format 

      # Anaconda 
      conda install -c conda-forgefeather-format
      只需要上面一行安裝即可,很簡(jiǎn)單。
      我們通過(guò)一個(gè)較大的數(shù)據(jù)集舉例,需要 Feather、Numpypandas 來(lái)一起配合。數(shù)據(jù)集有 5 列和 1000 萬(wàn)行隨機(jī)數(shù)。
      import feather
      import numpy as np
      import pandas as pd

      np.random.seed = 42
      df_size = 10000000

      df = pd.DataFrame({
          'a': np.random.rand(df_size),
          'b': np.random.rand(df_size),
          'c': np.random.rand(df_size),
          'd': np.random.rand(df_size),
          'e': np.random.rand(df_size)
      })
      df.head()
      圖片
      它的用法和之前csv的操作難度一個(gè)水平線,非常簡(jiǎn)單。
      保存
      兩種方式,一是 DataFrame 直接to_featherFeather 格式:
      df.to_feather('1M.feather')
      二是用 Feather 庫(kù)執(zhí)行相同操作的方法:
      feather.write_dataframe(df, '1M.feather')
      加載
      加載也是一樣的,同樣還是兩種方式。一是通過(guò)pandas加載:
      df = pd.read_feather('1M.feather')
      二是用 Feather 加載:
      df =feather.read_dataframe('1M.feather')
      操作習(xí)慣一樣,難度完全沒(méi)有。

      和CSV的區(qū)別

      對(duì)比產(chǎn)生美。下面來(lái)看下feathercsv的差距有多大。下圖顯示了上面本地保存 DataFrame 所需的時(shí)間:
      圖片
      差距巨大,有木有!原生 Feather(圖中的Native Feather)比 CSV 快了將近 150 倍左右。如果使用 pandas 處理 Feather 文件并沒(méi)有太大關(guān)系,但與 CSV 相比,速度的提高是非常顯著的。
      然后再看下讀取不同格式的相同數(shù)據(jù)集需要多長(zhǎng)時(shí)間。
      圖片
      同樣,差異也很明顯。CSV 的讀取速度要慢得多。并且CSV占用的磁盤(pán)空間也更大。
      圖片
      CSV 文件占用的空間是 Feather 文件占用的空間的兩倍多。假如我們每天存儲(chǔ)千兆字節(jié)的數(shù)據(jù),那么選擇正確的文件格式至關(guān)重要。Feather 在這方面完全碾壓了 CSV
      當(dāng)然,如果追求更多的壓縮空間,也可以試試Parquet,也是一個(gè)可以替代CSV 的格式。

      結(jié)語(yǔ)

      說(shuō)了這么多,可能很多同學(xué)還是甩出一句話:謝謝大佬,我選CSV圖片。 這個(gè)東西怎么說(shuō)呢圖片,當(dāng)你需要它時(shí),它就有用,如果日常沒(méi)有速度和空間的強(qiáng)烈需求,還是老老實(shí)實(shí)CSV吧。CSV已經(jīng)用慣了,改變使用習(xí)慣還是挺難的。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多