۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۵ ابزار جدیدتر علم داده که باید با پایتون استفاده کنید

قبلاً از NumPy، Pandas و scikit-learn استفاده می‌کنید؟ در اینجا پنج ابزار قدرتمندتر علم داده پایتون برای مکانی در جعبه ابزار شما آماده شده است.

قبلاً از NumPy، Pandas و scikit-learn استفاده می‌کنید؟ در اینجا پنج ابزار قدرتمندتر علم داده پایتون برای مکانی در جعبه ابزار شما آماده شده است.

اکوسیستم غنی از ابزارهای علم داده پایتون جذابیت بزرگی برای کاربران دارد. تنها نقطه ضعف چنین مجموعه گسترده و عمیقی این است که گاهی اوقات می توان بهترین ابزارها را نادیده گرفت.

در اینجا خلاصه ای از برخی از بهترین پروژه های جدیدتر یا کمتر شناخته شده علم داده موجود برای پایتون آورده شده است. برخی مانند قطبی ها بیش از گذشته مورد توجه قرار گرفته اند، اما هنوز هم سزاوار توجه گسترده تر هستند. دیگران، مانند ConnectorX، جواهرات پنهان هستند.

ConnectorX

بیشتر داده ها در جایی در یک پایگاه داده قرار می گیرند، اما محاسبات معمولاً خارج از پایگاه داده انجام می شود. دریافت داده ها به و از پایگاه داده برای کار واقعی می تواند کاهش سرعت باشد. ConnectorX داده‌ها را از پایگاه‌های داده در بسیاری از ابزارهای متداول جدال داده‌ها در پایتون بارگیری می‌کند و موارد را نگه می‌دارد. با به حداقل رساندن میزان کاری که باید انجام شود، سریع باشید.

مانند Polars (که به زودی در مورد آن صحبت خواهم کرد)، ConnectorX از کتابخانه Rust در هسته خود استفاده می کند. این امکان بهینه سازی هایی مانند بارگیری از منبع داده به موازات پارتیشن بندی را فراهم می کند. به عنوان مثال، داده ها در PostgreSQL را می توان با تعیین یک ستون پارتیشن به این روش بارگذاری کرد.

به غیر از PostgreSQL، ConnectorX همچنین از خواندن MySQL/MariaDB، SQLite، Amazon Redshift، Microsoft SQL Server و Azure SQL و Oracle پشتیبانی می‌کند. نتایج را می توان از طریق PyArrow به Pandas یا PyArrow DataFrame یا به Modin، Dask یا Polars منتقل کرد.

DuckDB

افرادی که از پایتون استفاده می‌کنند باید از SQLite آگاه باشند – پایگاه داده‌ای کوچک، اما قدرتمند و سریع که با پایتون بسته‌بندی شده است. از آنجایی که به‌عنوان یک کتابخانه در حال اجرا به‌جای یک برنامه جداگانه اجرا می‌شود، سبک وزن و پاسخ‌گو است.

Snowflake برای افزودن ابزارهای توسعه دهنده به Snowpark، ویژگی مدیریت هزینه را برنامه ریزی می کند

DuckDB کمی شبیه کسی است که به این سؤال پاسخ داده است، “اگر SQLite را برای OLAP بسازیم چه می‌شود؟” مانند سایر موتورهای پایگاه داده OLAP، از یک داده ستونی استفاده می کند و برای بارهای کاری پرس و جوی تحلیلی طولانی مدت بهینه شده است. اما همه چیزهایی را که از یک پایگاه داده معمولی انتظار دارید، مانند تراکنش های ACID به شما می دهد. و هیچ مجموعه نرم افزاری جداگانه ای برای پیکربندی وجود ندارد. شما می توانید آن را با یک فرمان pip install در محیط پایتون اجرا کنید.

DuckDB می‌تواند مستقیماً داده‌ها را در قالب CSV، JSON، یا پارکت دریافت کند. پایگاه‌های داده به‌دست‌آمده همچنین می‌توانند بر اساس کلیدها (به عنوان مثال، بر اساس سال و ماه) برای کارایی به چندین فایل فیزیکی تقسیم شوند. Querying مانند هر پایگاه داده رابطه‌ای دیگر با SQL کار می‌کند، اما با ویژگی‌های داخلی اضافی مانند توانایی نمونه‌برداری تصادفی از داده‌ها یا ساخت توابع پنجره.

DuckDB همچنین مجموعه‌ای کوچک اما مفید از برنامه‌های افزودنی دارد، از جمله جستجوی متن کامل، واردات/صادرات اکسل، اتصال مستقیم به SQLite و PostgreSQL، صادرات فایل پارکت، و پشتیبانی از بسیاری از قالب‌ها و انواع داده‌های مکانی رایج.

>

Optimus

یکی از کم حسادت‌انگیزترین کارهایی که می‌توانید در آن گیر کنید، تمیز کردن و آماده‌سازی داده‌ها برای استفاده در یک پروژه DataFrame محور است. Optimus یک مجموعه ابزار همه کاره برای بارگیری، کاوش، پاکسازی، و نوشتن مجدد داده ها است. به انواع منابع داده.

Optimus می تواند از Pandas، Dask، CUDF (و Dask + CUDF)، Vaex یا Spark به عنوان موتور داده زیربنایی خود استفاده کند. داده ها را می توان از Arrow، Parquet، Excel، انواع منابع پایگاه داده رایج، یا فرمت های فایل مسطح مانند CSV و JSON بارگیری کرد و دوباره ذخیره کرد.

پیش نمایش: Google Cloud Dataplex شگفت انگیز است

API دستکاری داده‌ها شبیه پانداها است، اما دسترسی‌های .rows() و .cols() را اضافه می‌کند تا انجام کارهایی مانند مرتب‌سازی قاب داده، فیلتر کردن بر اساس را آسان کند. مقادیر ستون ها، داده ها را بر اساس معیارها تغییر می دهند، یا محدوده عملیات را بر اساس برخی معیارها محدود می کنند. Optimus همچنین همراه با پردازنده هایی برای مدیریت انواع داده های رایج در دنیای واقعی مانند آدرس های ایمیل و URL ها ارائه می شود.

یکی از مشکلات احتمالی Optimus این است که هنوز در حال توسعه فعال است اما آخرین نسخه رسمی آن در سال ۲۰۲۰ بود. این بدان معنی است که ممکن است به اندازه سایر اجزای پشته شما به روز نباشد.

قطبی‌ها

اگر بیشتر وقت خود را صرف کار با DataFrames می‌کنید و از محدودیت‌های عملکرد پانداها ناامید شده‌اید، به قطبی ها. این کتابخانه DataFrame برای Python یک نحو مناسب شبیه به پانداها ارائه می دهد.

بر خلاف پانداها، Polars از کتابخانه ای استفاده می کند که به زبان Rust نوشته شده است که از سخت افزار شما حداکثر بهره را می برد. برای استفاده از ویژگی‌های افزایش عملکرد مانند پردازش موازی یا SIMD، نیازی به استفاده از نحو خاصی ندارید. این همه خودکار است حتی عملیات ساده مانند خواندن از یک فایل CSV سریعتر است.

Polars همچنین حالت‌های اجرای مشتاق و تنبل را ارائه می‌کند، بنابراین پرس‌و‌جوها را می‌توان فوراً اجرا کرد یا تا زمانی که نیاز باشد به تعویق افتاد. همچنین یک API جریان برای پردازش پرس‌و‌جوها به صورت تدریجی ارائه می‌کند، اگرچه پخش جریانی هنوز برای بسیاری از عملکردها در دسترس نیست. و توسعه‌دهندگان Rust می‌توانند افزونه‌های Polars خود را با استفاده از pyo3 بسازند.

چرا کسب و کارها از استفاده از داده ها بدشان می آید؟

مارساز

راه‌اندازی جریان‌های کاری علم داده سخت است، و حتی سخت‌تر است که به روشی سازگار و قابل پیش‌بینی تنظیم شوند. Snakemake ایجاد شد تا دقیقاً این کار را فعال کند: تنظیم خودکار تجزیه و تحلیل داده‌ها در پایتون به روش‌هایی که اطمینان حاصل شود همه افراد دیگر به همان نتایجی که شما انجام می دهید بسیاری از پروژه های علم داده موجود به Snakemake متکی هستند. هرچه قطعات متحرک بیشتری در گردش کار علم داده خود داشته باشید، به احتمال زیاد از خودکارسازی آن با Snakemake سود خواهید برد.

جریان‌های کاری Snakemake شبیه گردش‌های کاری GNU make هستند—شما چیزهایی را که می‌خواهید ایجاد کنید با قوانین تعریف می‌کنید، که تعریف می‌کنند چه چیزی را وارد می‌کنند، چه چیزی را منتشر می‌کنند و چه دستوراتی را برای انجام آن اجرا کنید. قوانین گردش کار می توانند چند رشته ای باشند (با این فرض که به آنها مزیتی می دهد)، و داده های پیکربندی را می توان از فایل های JSON/YAML وارد کرد. همچنین می توانید توابعی را در گردش کار خود برای تبدیل داده های استفاده شده در قوانین تعریف کنید و اقدامات انجام شده در هر مرحله را در گزارش ها بنویسید.

کارهای Snakemake به‌گونه‌ای طراحی شده‌اند که قابل حمل باشند—آن‌ها می‌توانند در هر محیط مدیریت‌شده توسط Kubernetes یا در محیط‌های ابری خاص مانند Google Cloud Life Sciences یا Tibanna در AWS مستقر شوند. برای استفاده از مجموعه دقیقی از بسته‌ها، می‌توان گردش‌های کاری را منجمد کرد، و هر گردش کاری که با موفقیت اجرا شده باشد، می‌تواند آزمایش‌های واحد را به‌طور خودکار تولید و با آن ذخیره کند. و برای بایگانی طولانی‌مدت، می‌توانید گردش کار را به صورت تاربال ذخیره کنید.