ทำให้แพนด้าเร็วขึ้น 3 เท่าด้วย PyPolars

โหนดต้นทาง: 1854103

ทำให้แพนด้าเร็วขึ้น 3 เท่าด้วย PyPolars

เรียนรู้วิธีเพิ่มความเร็วเวิร์กโฟลว์ Pandas ของคุณโดยใช้ไลบรารี PyPolars


By สัตยัมกุมาร, ผู้ที่ชื่นชอบแมชชีนเลิร์นนิง & โปรแกรมเมอร์



ภาพถ่ายโดย ทิมกูวา on Unsplash

 

Pandas เป็นหนึ่งในแพ็คเกจ Python ที่สำคัญที่สุดในหมู่นักวิทยาศาสตร์ด้านข้อมูลที่จะเล่นกับข้อมูล ห้องสมุด Pandas ส่วนใหญ่จะใช้สำหรับการสำรวจข้อมูลและการแสดงภาพ เนื่องจากมีฟังก์ชันในตัวมากมาย Pandas ล้มเหลวในการจัดการชุดข้อมูลขนาดใหญ่ เนื่องจากไม่มีการปรับขนาดหรือกระจายกระบวนการไปยังแกนประมวลผลทั้งหมดของ CPU

เพื่อเพิ่มความเร็วในการคำนวณ เราสามารถใช้แกนประมวลผลทั้งหมดของ CPU และเพิ่มความเร็วให้กับเวิร์กโฟลว์ มีไลบรารีโอเพ่นซอร์สมากมาย เช่น Dask, Vaex, Modin, Pandarallel, PyPolars เป็นต้น ที่ปรับการคำนวณแบบขนานกันในหลายคอร์ของ CPU ในบทความนี้ เราจะพูดถึงการใช้งานและการใช้งานของไลบรารี PyPolars และเปรียบเทียบประสิทธิภาพกับไลบรารี Pandas

PyPolar คืออะไร?

 
PyPolars เป็นไลบรารีเฟรมข้อมูล Python โอเพ่นซอร์สที่คล้ายกับ Pandas PyPolars ใช้คอร์ที่มีอยู่ทั้งหมดของ CPU และทำการคำนวณได้เร็วกว่า Pandas PyPolars มี API ที่คล้ายกับของ Pandas มันถูกเขียนขึ้นสนิมด้วยเครื่องห่อ Python


ตามหลักการแล้ว PyPolars จะใช้เมื่อข้อมูลใหญ่เกินไปสำหรับ Pandas และเล็กเกินไปสำหรับ Spark


PyPolars ทำงานอย่างไร?

 
ไลบรารี PyPolars มี API สองตัว ตัวหนึ่งคือ Eager API และอีกตัวคือ Lazy API Eager API นั้นคล้ายกับของ Pandas มากและผลลัพธ์จะเกิดขึ้นหลังจากการดำเนินการเสร็จสิ้นคล้ายกับ Pandas Lazy API นั้นคล้ายกับ Spark มาก โดยที่แผนที่หรือแผนจะถูกสร้างขึ้นเมื่อดำเนินการค้นหา จากนั้นการดำเนินการจะดำเนินการแบบคู่ขนานกันในทุกคอร์ของ CPU



(ภาพโดยผู้แต่ง), PyPolars API's

 

โดยพื้นฐานแล้ว PyPolars นั้นเหมือนกับ python ที่ผูกกับห้องสมุด Polars ส่วนที่ดีที่สุดของไลบรารี PyPolars คือความคล้ายคลึงของ API กับ Pandas ซึ่งทำให้นักพัฒนาซอฟต์แวร์ง่ายขึ้น

การติดตั้ง:

 
สามารถติดตั้ง PyPolars ได้จาก PyPl โดยใช้คำสั่งต่อไปนี้:

pip install py-polars


และนำเข้าห้องสมุดโดยใช้

import pypolars as pl


ข้อ จำกัด ด้านเวลามาตรฐาน:


สำหรับการสาธิต ฉันใช้ชุดข้อมูลขนาดใหญ่ (~6.4Gb) ที่มี 25 ล้านอินสแตนซ์




(ภาพโดยผู้แต่ง), Benchmark Time Number สำหรับการทำงานพื้นฐานของ Pandas และ Py-Polars

 

สำหรับตัวเลขเวลามาตรฐานข้างต้นสำหรับการดำเนินการพื้นฐานบางอย่างโดยใช้ไลบรารี Pandas และ PyPolars เราจะสังเกตได้ว่า PyPolars เร็วกว่า Pandas เกือบ 2 เท่าถึง 3 เท่า

ตอนนี้เรารู้แล้วว่า PyPolars มี API ที่คล้ายกับของ Pandas มาก แต่ก็ยังไม่ครอบคลุมถึงฟังก์ชันทั้งหมดของ Pandas ตัวอย่างเช่น เราไม่มี .describe() ฟังก์ชันใน PyPolars แทน เราสามารถใช้ df_pypolars.to_pandas().describe()

การใช้งาน:

 

(รหัสโดยผู้เขียน)

สรุป:

 
ในบทความนี้ เราได้กล่าวถึงข้อมูลเบื้องต้นเล็กน้อยเกี่ยวกับไลบรารี PyPolars ซึ่งรวมถึงการใช้งาน การใช้งาน และการเปรียบเทียบตัวเลขเวลามาตรฐานกับ Pandas สำหรับการดำเนินการพื้นฐานบางอย่าง โปรดทราบว่า PyPolars ทำงานคล้ายกับของ Pandas มาก และ PyPolars เป็นไลบรารี่ที่มีประสิทธิภาพด้านหน่วยความจำ เนื่องจากหน่วยความจำที่สนับสนุนโดยมันไม่เปลี่ยนรูปแบบ

หนึ่งสามารถผ่าน เอกสาร เพื่อทำความเข้าใจรายละเอียดของห้องสมุด มีไลบรารีโอเพนซอร์ซอื่น ๆ มากมายที่สามารถทำให้การดำเนินการของ Pandas ขนานกันและเร่งกระบวนการได้ อ่าน บทความด้านล่าง เพื่อทราบ 4 ห้องสมุดดังกล่าว:

4 ห้องสมุดที่สามารถขนานกับระบบนิเวศ Pandas ที่มีอยู่ได้
กระจายปริมาณงาน Python โดยการประมวลผลแบบขนานโดยใช้เฟรมเวิร์กเหล่านี้

 
อ้างอิง:

[1] เอกสาร Polars และที่เก็บ GitHub: https://github.com/ritchie46/polars

 
ขอบคุณสำหรับการอ่าน

 
Bio: สัตยัมกุมาร เป็นผู้ที่ชื่นชอบการเรียนรู้ด้วยเครื่องและโปรแกรมเมอร์ สัตยัม เขียน เกี่ยวกับ Data Science และเป็นนักเขียนชั้นนำด้าน AI เขากำลังมองหาอาชีพที่ท้าทายกับองค์กรที่ให้โอกาสในการใช้ประโยชน์จากทักษะและความสามารถด้านเทคนิคของเขา

Original. โพสต์ใหม่โดยได้รับอนุญาต

ที่เกี่ยวข้อง



เรื่องเด่นใน 30 วันที่ผ่านมา

เป็นที่นิยม
  1. นักวิทยาศาสตร์ข้อมูล วิศวกรข้อมูล และอาชีพข้อมูลอื่นๆ อธิบาย
  2. Vaex: แพนด้า แต่เร็วกว่า 1000 เท่า
  3. หนังสือ Data Science ที่คุณควรเริ่มอ่านในปี 2021
  4. การเตรียมข้อมูลใน SQL ด้วย Cheat Sheet!
  5. Charticulator: Microsoft Research เปิดแหล่งที่มาของแพลตฟอร์ม Data Visualization ที่เปลี่ยนเกม
แบ่งปันมากที่สุด
  1. คู่มือเกี่ยวกับวิธีการเป็นนักวิทยาศาสตร์ข้อมูล (วิธีการทีละขั้นตอน)
  2. นักวิทยาศาสตร์ข้อมูล วิศวกรข้อมูล และอาชีพข้อมูลอื่นๆ อธิบาย
  3. วิธีการตรวจสอบว่าโมเดลแมชชีนเลิร์นนิงของคุณมีการฝึกมากเกินไปหรือไม่
  4. DeepMind ต้องการจินตนาการใหม่หนึ่งในอัลกอริทึมที่สำคัญที่สุดในการเรียนรู้ของเครื่อง
  5. พีชคณิตเชิงเส้นที่จำเป็นสำหรับวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง

ที่มา: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

ประทับเวลา:

เพิ่มเติมจาก KD นักเก็ต