<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見 CSV,速度提升 150 倍!(留言送書)

          共 3752字,需瀏覽 8分鐘

           ·

          2021-09-24 16:41


          為什么要和CSV再見?

          先來介紹下為什么要和CSV再見。其實(shí)也談不上徹底再見吧,日常還是要用的,這里再介紹一個更加高效的數(shù)據(jù)格式。
          Python處理數(shù)據(jù)時保存和加載文件屬于日常操作了,尤其面對大數(shù)據(jù)量時我們一般都會保存成CSV格式,而不是Excel。一是因?yàn)?code style="padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(89, 89, 89);font-size: 13px;letter-spacing: 0.5px;">Excel有最大行數(shù)1048576的限制,二是文件占用空間更大,保存和加載速度很慢。
          雖然用CSV沒有行數(shù)限制,相對輕便,但是面對大數(shù)據(jù)量時還是略顯拉夸,百萬數(shù)據(jù)量儲存加載時也要等好久。。不過很多同學(xué)都借此機(jī)會抻抻懶腰、摸摸魚,充分利用時間也不錯。
          其實(shí),CSV 并不是唯一的數(shù)據(jù)存儲格式。今天和大家介紹一個速度超快、更加輕量級的二進(jìn)制格式保存格式:feather

          Feather是什么?

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

          如何在Python中操作Feather?

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

          # Anaconda 
          conda install -c conda-forgefeather-format
          只需要上面一行安裝即可,很簡單。
          我們通過一個較大的數(shù)據(jù)集舉例,需要 Feather、Numpypandas 來一起配合。數(shù)據(jù)集有 5 列和 1000 萬行隨機(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的操作難度一個水平線,非常簡單。
          保存
          兩種方式,一是 DataFrame 直接to_featherFeather 格式:
          df.to_feather('1M.feather')
          二是用 Feather 庫執(zhí)行相同操作的方法:
          feather.write_dataframe(df, '1M.feather')
          加載
          加載也是一樣的,同樣還是兩種方式。一是通過pandas加載:
          df = pd.read_feather('1M.feather')
          二是用 Feather 加載:
          df =feather.read_dataframe('1M.feather')
          操作習(xí)慣一樣,難度完全沒有。

          和CSV的區(qū)別

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

          結(jié)語

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

          ············END············


          Python客棧提前祝大家中秋節(jié)快樂!

          為了回饋粉絲長久對我們的支持,我們連續(xù)三天都有留言贈書活動,中獎名額也有所升級!

          具體活動規(guī)則如下


          留言送書

           

          推薦理由:

          第1部分是基礎(chǔ)篇,帶領(lǐng)初學(xué)者實(shí)踐Python開發(fā)環(huán)境和掌握基本語法,同時對網(wǎng)絡(luò)協(xié)議、Web客戶端技術(shù)、數(shù)據(jù)庫建模編程等網(wǎng)絡(luò)編程基礎(chǔ)深入淺出地進(jìn)行學(xué)習(xí)

          第2部分是框架篇,學(xué)習(xí)當(dāng)前*流行的Python Web框架,即Django、Tornado、Flask和Twisted,達(dá)到對各種Python網(wǎng)絡(luò)技術(shù)融會貫通的目的;
          第3部分是實(shí)戰(zhàn)篇,分別對幾種常用WEB框架進(jìn)行項(xiàng)目實(shí)踐,利用其各自的特點(diǎn)開發(fā)適用于不同場景的網(wǎng)絡(luò)程序

          推薦理由:

          (1)實(shí)戰(zhàn)技能:本書講解了Python編程從入門到精通可能涉及的100個關(guān)鍵技能。


          (2)關(guān)鍵練習(xí):100個關(guān)鍵技能,對應(yīng)100個關(guān)鍵練習(xí),能學(xué)會用
          (3)關(guān)鍵視頻:重點(diǎn)、難點(diǎn),都有視頻講解,降低了學(xué)習(xí)難度曲線。


          推薦理由:

          本書既適合非計(jì)算機(jī)專業(yè)出身的編程初學(xué)者,也適合即將走上工作崗位的廣大畢業(yè)生,或已經(jīng)有編程經(jīng)驗(yàn)但想轉(zhuǎn)行做Python應(yīng)用開發(fā)的專業(yè)人士。同時,本書還可以作為廣大職業(yè)院校、計(jì)算機(jī)培訓(xùn)班的教學(xué)參考用書。


          推薦理由:

          隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,如何有效地提取并利用信息,以及如何有效地防止信息被爬取,已成為一個巨大的挑戰(zhàn)。本書從零基礎(chǔ)開始講解,系統(tǒng)全面,案例豐富,注重實(shí)戰(zhàn),既適合Python程序員和爬蟲愛好者閱讀學(xué)習(xí),也可以作為廣大職業(yè)院校相關(guān)專業(yè)的教材或參考用書。礎(chǔ)操作、圖形處理基本操作、簡單圖形的繪制和對象的管理等內(nèi)容


          推薦理由:

          本書主要講解數(shù)據(jù)分析與大數(shù)據(jù)處理所需的技術(shù)、基礎(chǔ)設(shè)施、核心概念、實(shí)施流程。從編程語言準(zhǔn)備、數(shù)據(jù)采集與清洗、數(shù)據(jù)分析與可視化,到大型數(shù)據(jù)的分布式存儲與分布式計(jì)算,貫穿了整個大數(shù)據(jù)項(xiàng)目開發(fā)流程。本書輕理論、重實(shí)踐,目的是讓讀者快速上手。


          推薦理由:

          專注于Python數(shù)據(jù)分析與可視化操作中實(shí)際用到的技術(shù)。相比大而全的書籍資料,本書能讓讀者盡快上手,開始項(xiàng)目開發(fā)。本書以“零基礎(chǔ)”為起點(diǎn),系統(tǒng)地介紹了Python在數(shù)據(jù)處理與可視化分析方面的應(yīng)用



          推薦理由:

          理論性與實(shí)用性兼?zhèn)?,既可作為初學(xué)者的入門書籍,也可作為求職者的面試寶典,更可作為職場人士轉(zhuǎn)崗的實(shí)用手冊。本書適合需要全面學(xué)習(xí)機(jī)器學(xué)習(xí)算法的初學(xué)者、希望掌握機(jī)器學(xué)習(xí)算法數(shù)學(xué)理論的程序員、想轉(zhuǎn)行從事機(jī)器學(xué)習(xí)算法的專業(yè)人員、對機(jī)器學(xué)習(xí)算法興趣濃厚的人員、專業(yè)培訓(xùn)機(jī)構(gòu)學(xué)員和希望提高Python編程水平的程序員。


          推薦理由:

          本書以零基礎(chǔ)講解為宗旨,面向?qū)W習(xí)數(shù)據(jù)科學(xué)與人工智能的讀者,通俗地講解每一個知識點(diǎn),旨在幫助讀者快速打下數(shù)學(xué)基礎(chǔ)。本書適合準(zhǔn)備從事數(shù)據(jù)科學(xué)與人工智能相關(guān)行業(yè)的讀者。


          推薦理由:

          本書首先介紹算法的概念和特點(diǎn),然后介紹數(shù)據(jù)結(jié)構(gòu),再逐步深入介紹各類算法,通過解決實(shí)際問題加深理解。本書選取了近年來比較熱門的語言Python作為載體,來實(shí)現(xiàn)算法的功能。這不但可以讓讀者系統(tǒng)地學(xué)習(xí)算法的相關(guān)知識,而且還能提高讀者對Python語言的應(yīng)用水平。



          活動規(guī)則


          活動截止時我們將從本文的精選留言中選出 九位粉絲走心留言贈送書籍,以上書籍任選一本免費(fèi)包郵贈送~


          活動截止時間: 2021 年 9 月 22 日 16:00 整



          悄悄告訴你,群內(nèi)不僅僅和以上書活動同步,還有紅包哦~

          進(jìn)群方法:

          掃描下方二維碼,添加小編微信,邀請進(jìn)群





          往期推薦

          1、一條命令搭建私人網(wǎng)盤,太贊了

          2Python 帶你高效創(chuàng)作短視頻

          3、B 站 CEO 的身份證被上傳到 GitHub 了?

          4、利用Python去除圖片水印,太神奇了!

          5、40個Python可視化圖表案例(附代碼)

          今天因?yàn)槟狞c(diǎn)贊和在看,讓我元?dú)鉂M滿!

          瀏覽 51
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲免费色情 | 国产毛片成人网站 | 欧美成人三级在线观看 | 国产日韩欧美久久 | 日本学生妹内射视频在线观看 |