<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>

          速度起飛!替代 pandas 的 8 個神庫

          共 2635字,需瀏覽 6分鐘

           ·

          2022-06-09 23:20

          大家好,之前介紹過不少關(guān)于pandas性能加速的技巧,但這些技巧再厲害,整體運行速度方面也會遇到瓶頸。本篇介紹 8 個可以替代pandas的庫,在加速技巧之上,再次打開速度瓶頸,大大提升數(shù)據(jù)處理的效率。

          1. Dask

          Dask在大于內(nèi)存的數(shù)據(jù)集上提供多核和分布式并行執(zhí)行。

          Dask中,一個DataFrame是一個大型且并行的DataFrame,由許多較小的 pandas DataFrames組成,沿索引拆分。

          這些 pandas DataFrames 可以存在于單個機器上的磁盤中計算遠超于內(nèi)存的計算,或者存在集群中的很多不同機器上完成。一個 Dask DataFrame 操作會觸發(fā)所有 Pandas DataFrames 的操作。

          Dask-ML支持pandas、Numpy、Sklearn、XGBoost、XArray、RAPIDS等等,對于常用的數(shù)據(jù)處理、建模分析是完全夠用的。

          #?安裝dask
          pip?install?dask
          #?導(dǎo)入dask?dataframe
          import?dask.dataframe?as?dd

          原理、使用可參考這篇:安利一個Python大數(shù)據(jù)分析神器Dask!

          2. Modin

          Modin是一個多進程的Dataframe庫,可以加速Pandas的工作流程。多進程意味著,如果在多核的計算機上查詢速度就會成倍的提升。

          Modin具有與pandas相同的API,使用上只需在import導(dǎo)入時修改一下,其余操作一模一樣。

          #?導(dǎo)入?modin?pandas
          import?modin.pandas?as?pd

          原理、安裝、使用可參考這篇:pandas慢怎么辦?來試試Modin

          3. Data Table

          Datatable是一個用于處理表格數(shù)據(jù)的 Python 庫。

          pandas的使用上很類似,但更側(cè)重于速度和大數(shù)據(jù)的支持。在單節(jié)點的機器上,無論是讀取數(shù)據(jù),還是數(shù)據(jù)轉(zhuǎn)換等操作,速度均遠勝于pandas

          如果不是分布式而是單節(jié)點處理數(shù)據(jù),遇到內(nèi)存不夠或者速度慢,也不妨試試這個庫。

          使用文檔:https://datatable.readthedocs.io/en/latest/start/quick-start.html

          4. Polars

          Polars是使用 Apache Arrow Columnar Format 作為內(nèi)存模型在 Rust 中實現(xiàn)的速度極快的 DataFrames 庫。

          #?安裝?polars
          pip?install?polars
          #?導(dǎo)入?polars
          import?polars?as?pl

          使用文檔:https://pola-rs.github.io/polars-book/user-guide/index.html

          5. Vaex

          Vaex 也是一個開源的 DataFrame,它采用內(nèi)存映射、高效的核外算法和延遲計算等技術(shù)。

          對于大數(shù)據(jù)集而言,只要磁盤空間可以裝下數(shù)據(jù)集,使用Vaex就可以對其進行分析,解決內(nèi)存不足的問題。

          它的各種功能函數(shù)也都封裝為類 Pandas 的 API,幾乎沒有學(xué)習(xí)成本。

          可參考這篇文章:0.052 秒打開 100GB 數(shù)據(jù),這個Python開源庫火爆了!

          6. Pyspark

          Pyspark 是 Apache Spark 的 Python API,通過分布式計算處理大型數(shù)據(jù)集。

          #?安裝
          pip?install?pyspark
          #?導(dǎo)入
          from?pyspark.sql?import?SparkSession,?functions?as?f
          spark?=?SparkSession.builder.appName("SimpleApp").getOrCreate()
          df?=?spark.read.option('header',?True).csv('../input/yellow-new-yo

          由于spark在速度上較hadoop更有優(yōu)勢,現(xiàn)在很多企業(yè)的大數(shù)據(jù)架構(gòu)都會選擇使用spark。

          7. Koalas

          Koalas 是在 Apache Spark 之上實現(xiàn) 的pandas DataFrame API,讓數(shù)據(jù)分析更高效。

          由于 Koalas 是在 Apache Spark 之上運行的,因此還必須安裝 Spark

          #?安裝
          pip?install?pyspark
          pip?install?koalas
          #?導(dǎo)入
          import?databricks.koalas?as?ks
          from?pyspark.sql?import?SparkSession

          使用文檔:https://koalas.readthedocs.io/en/latest/index.html

          8. cuDF

          cuDF 是一個 Python GPU DataFrame 庫,基于 Apache Arrow 列式內(nèi)存格式構(gòu)建,用于數(shù)據(jù)操作。

          cuDF 提供類 pandas 的 API,因此數(shù)據(jù)分析師也是無需了解 CUDA 編程細節(jié)的。

          import?cudf,?io,?requests
          from?io?import?StringIO

          url?=?"https://github.com/plotly/datasets/raw/master/tips.csv"
          content?=?requests.get(url).content.decode('utf-8')

          tips_df?=?cudf.read_csv(StringIO(content))
          tips_df['tip_percentage']?=?tips_df['tip']?/?tips_df['total_bill']?*?100

          print(tips_df.groupby('size').tip_percentage.mean())

          使用文檔:https://github.com/rapidsai/cudf

          本篇介紹的 8 個Python庫原理不同,使用環(huán)境也有差異,大家可以根據(jù)自己的需求進行嘗試。

          但這些庫基本上都提供了類pandas的API,因此在使用上沒有什么學(xué)習(xí)成本,只要配置好環(huán)境就可以上手操作了。



          相關(guān)閱讀:

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  国产卡一卡二卡三卡四在线观看 | 小泽玛利亚大战黑人喷水 | 97色色色色 | 五级 黄 色 片 | 视频一区中文字幕 |