10 کد تک خطی پایتون برای علم داده
پایتون محبوبترین زبان برنامهنویسی در علم داده است، زیرا بسیار انعطافپذیر است و از حمایت گستردهای از سوی جامعه برنامهنویسان برخوردار است. با استفاده گسترده از این زبان، روشهای زیادی برای بهبود جریان کاری علم داده وجود دارد که ممکن است از آنها بیاطلاع باشید.
در این مقاله، به بررسی ده تکخطی پایتون برای علم داده میپردازیم که میتوانند جریان کاری شما در علم داده را تقویت کنند. این تکخطیها چیستند؟ بیایید نگاهی به آنها بیندازیم.
1. مدیریت کارآمد دادههای گمشده
دادههای گمشده در مجموعههای داده امری رایج هستند. این مشکل میتواند به دلایل مختلفی از جمله مدیریت نادرست دادهها، شرایط طبیعی یا موارد دیگر رخ دهد. با این حال، باید تصمیم بگیریم که چگونه با دادههای گمشده برخورد کنیم.
برخی افراد دادههای گمشده را به یک دسته خاص اختصاص میدهند یا آنها را حذف میکنند. اما گاهی اوقات ترجیح میدهیم دادههای گمشده را پر کنیم.
برای پر کردن دادههای گمشده، میتوانیم از متد fillna در کتابخانه پانداس استفاده کنیم. استفاده از این متد ساده است، زیرا تنها کافی است مقداری را که میخواهیم جایگزین دادههای گمشده شود، مشخص کنیم. اما میتوانیم این فرآیند را کارآمدتر کنیم.
به کد زیر توجه کنید:
با ترکیب متد fillna و شرایط مشخص، میتوانیم دادههای گمشده عددی را با میانه (median) و دادههای گمشده دستهای (categorical) را با مد (mode) پر کنیم.
با این تکخطی، میتوانید بهسرعت دادههای گمشده در ستونهای مختلف را پر کنید.
2. حذف ویژگیهای با همبستگی بالا
همخطی (Multicollinearity) زمانی رخ میدهد که در مجموعه داده ما، متغیرهای مستقل زیادی با یکدیگر بهجای متغیر هدف همبستگی بالایی داشته باشند. این موضوع میتواند عملکرد مدل را تحت تأثیر منفی قرار دهد، بنابراین بهتر است ویژگیهایی با همبستگی کمتر را نگه داریم.
میتوانیم با استفاده از قابلیت همبستگی پانداس و انتخاب شرطی، بهسرعت ویژگیهایی با همبستگی کمتر را انتخاب کنیم. برای مثال، در کد زیر، ویژگیهایی را انتخاب میکنیم که حداکثر همبستگی پیرسون آنها با دیگر ویژگیها کمتر از 0.95 باشد:
میتوانید ویژگیهای همبستگی و آستانههای مختلف را آزمایش کنید تا ببینید آیا مدل پیشبینی عملکرد بهتری دارد یا خیر.
3. اعمال شرطی روی ستونها
ایجاد یک ستون جدید با چندین شرط گاهی اوقات پیچیده است و ممکن است کد طولانی شود. اما میتوانیم از متد apply در پانداس استفاده کنیم تا شرایط خاصی را هنگام ایجاد ویژگی جدید اعمال کنیم، در حالی که از مقادیر چندین ستون استفاده میکنیم.
برای مثال، در کد زیر یک ستون جدید ایجاد میکنیم که مقادیر آن بر اساس شرطهای مقادیر ستونهای دیگر تعیین میشود:
شما میتوانید شرایط دیگری را که با نیازهایتان مطابقت دارد، آزمایش کنید.
4. یافتن عناصر مشترک و متفاوت
پایتون انواع داده داخلی متعددی دارد، از جمله مجموعه (Set). نوع داده مجموعه، دادههایی بدون ترتیب و با عناصر یکتا را نشان میدهد. این نوع داده اغلب برای عملیات مختلف دادهای، از جمله یافتن عناصر مشترک، استفاده میشود.
برای مثال، فرض کنید دو مجموعه زیر را داریم:
برای یافتن عناصر مشترک بین این دو مجموعه، میتوانیم از متد زیر استفاده کنیم:
خروجی:
این یک روش ساده اما کاربردی برای یافتن عناصر مشترک است. برعکس، میتوانیم عناصری که در دو مجموعه متفاوت هستند را نیز پیدا کنیم:
خروجی:
از این روشها در جریان کاری داده خود استفاده کنید، زمانی که نیاز به یافتن عناصر مشترک یا متفاوت دارید.
5. ماسکهای بولی برای فیلتر کردن
هنگام کار با آرایههای NumPy یا اشیاء مشتقشده از آن، گاهی اوقات میخواهیم دادهها را بر اساس نیازهای خود فیلتر کنیم. در این مورد، میتوانیم از یک ماسک بولی برای فیلتر کردن دادهها بر اساس شرایط بولی که تعیین کردهایم، استفاده کنیم.
فرض کنید لیست داده زیر را داریم:
سپس میتوانیم از ماسک بولی برای فیلتر کردن دادههای مورد نظر استفاده کنیم. برای مثال، اگر فقط اعداد زوج را بخواهیم:
خروجی:
این روش پایه فیلتر کردن در پانداس نیز هست، اما ماسک بولی میتواند انعطافپذیرتر باشد زیرا در آرایههای NumPy نیز کار میکند.
6. شمارش تعداد وقوع در لیست
هنگام کار با لیست یا دادههایی با مقادیر متعدد، گاهی اوقات میخواهیم فرکانس هر مقدار را بدانیم. در این حالت، میتوانیم از تابع Counter برای شمارش خودکار استفاده کنیم.
برای مثال، فرض کنید لیست زیر را داریم:
سپس میتوانیم از تابع Counter برای محاسبه فرکانس استفاده کنیم:
خروجی:
نتیجه یک دیکشنری از تعداد وقوع هر مقدار است. از این روش زمانی که نیاز به محاسبه سریع فرکانس دارید، استفاده کنید.
7. استخراج اعداد از متن
عبارتهای منظم (Regular Expressions یا Regex) فهرستی از کاراکترها هستند که الگویی را در متن تطبیق میدهند. این ابزار معمولاً زمانی استفاده میشود که بخواهیم دستکاری خاصی روی متن انجام دهیم، و این دقیقاً همان چیزی است که میتوانیم با این تکخطی انجام دهیم.
در مثال زیر، میتوانیم از ترکیب Regex و map برای استخراج اعداد از متن استفاده کنیم:
خروجی:
مثال بالا فقط برای دادههای عددی صحیح کار میکند، اما با یادگیری بیشتر درباره عبارتهای منظم، میتوانید این تکخطی را برای موارد استفاده متعدد و با انعطافپذیری بالا تطبیق دهید.
8. صاف کردن لیست تو در تو
هنگام آمادهسازی دادهها برای تحلیل، ممکن است با دادههای لیستی مواجه شویم که شامل لیستهای دیگری هستند، که به آنها لیستهای تو در تو میگوییم. اگر با چنین چیزی مواجه شدیم، ممکن است بخواهیم آنها را برای تحلیل یا تجسم داده سادهتر کنیم.
برای مثال، فرض کنید لیست تو در تو زیر را داریم:
میتوانیم این لیست را با کد زیر صاف کنیم:
خروجی:
با این لیست داده یکبعدی، میتوانید تحلیلهای بعدی را بهصورت سادهتر انجام دهید.
9. تبدیل لیست به دیکشنری
آیا تا به حال در موقعیتی بودهاید که چندین لیست دارید و میخواهید اطلاعات آنها را در قالب دیکشنری ترکیب کنید؟ برای مثال، این مورد ممکن است به اهداف نگاشت یا کدگذاری ویژگیها مربوط باشد.
در این حالت، میتوانیم لیستها را با استفاده از تابع zip به دیکشنری تبدیل کنیم.
برای مثال، فرض کنید لیستهای زیر را داریم:
با ترکیب zip و dict، میتوانیم این دو لیست را به یک دیکشنری تبدیل کنیم:
خروجی:
این یک روش سریع برای ترکیب دو مجموعه داده در یک ساختار است که میتواند برای پیشپردازش دادههای بعدی استفاده شود.
10. ادغام دیکشنریها
وقتی دیکشنریهایی داریم که حاوی اطلاعاتی هستند که برای پیشپردازش داده نیاز داریم، باید آنها را ترکیب کنیم. برای مثال، فرض کنید مانند بالا لیستها را به دیکشنری تبدیل کردهایم و حالا دیکشنریهای زیر را داریم:
میخواهیم این دو را ترکیب کنیم، زیرا اطلاعات آنها بهعنوان یک کل میتواند مهم باشد. برای این کار، میتوانیم از تکخطی زیر استفاده کنیم:
خروجی:
همانطور که میبینید، هر دو دیکشنری به یک دیکشنری واحد تبدیل شدهاند. این روش در بسیاری از موارد که نیاز به تجمیع دادهها دارید، بسیار مفید است.
نتیجهگیری
در این مقاله، ده تکخطی پایتون برای علم داده را بررسی کردیم که میتوانند جریان کاری شما در علم داده را بهبود بخشند. این تکخطیها بر روی موارد زیر تمرکز داشتند:
مدیریت کارآمد دادههای گمشده
حذف ویژگیهای با همبستگی بالا
اعمال شرطی روی ستونها
یافتن عناصر مشترک و متفاوت
استفاده از ماسکهای بولی برای فیلتر کردن
شمارش تعداد وقوع در لیست
استخراج اعداد از متن
صاف کردن لیستهای تو در تو
تبدیل لیست به دیکشنری
ادغام دیکشنریها
این ابزارهای ساده اما قدرتمند میتوانند به شما کمک کنند تا فرآیندهای علم داده خود را سریعتر و کارآمدتر انجام دهید.
دیدگاهتان را بنویسید