

10 تک لاینر پایتون که گردش کار علم داده شما را تقویت می کند
تصویر نویسنده | ایدئوگرام
پایتون محبوب ترین زبان برنامه نویسی علم داده است، زیرا همه کاره است و از حمایت زیادی از طرف جامعه برخوردار است. با استفاده زیاد، راه های زیادی برای بهبود گردش کار علم داده ما وجود دارد که ممکن است ندانید.
در این مقاله، ما ده تک لاینر مختلف پایتون را بررسی می کنیم که کار علم داده شما را تقویت می کند.
آنها چه هستند؟ بیایید نگاهی بیندازیم.
1. مدیریت کارآمد داده های از دست رفته
داده های از دست رفته یک اتفاق ثابت در مجموعه داده ها است. این ممکن است به دلایل مختلفی رخ دهد، از سوء مدیریت داده ها گرفته تا شرایط طبیعی و فراتر از آن. با این وجود، ما باید تصمیم بگیریم که چگونه داده های از دست رفته را مدیریت کنیم.
برخی آن را به دسته داده های از دست رفته وارد می کنند یا همه آنها را حذف می کنند. با این حال، مواقعی وجود دارد که ما تصمیم میگیریم دادههای از دست رفته را پر کنیم.
اگر بخواهیم داده های از دست رفته را پر کنیم، می توانیم از پانداها استفاده کنیم fillna
روش استفاده از آن آسان است زیرا فقط باید مقداری را که میخواهیم پر کنیم به عنوان جایگزینی برای مقدار گمشده ارسال کنیم، اما میتوانیم آن را کارآمدتر کنیم.
بیایید کد زیر را ببینیم.
df.fillna({col: df[col].median() برای col در df.select_dtypes(include=”number”).columns} | {col: df[col].mode()[0] برای col در df.select_dtypes(include=”object”).columns}، inplace=True)
df.فیلنا({سرهنگ: df[col].میانه() برای سرهنگ در df.select_dtypes(شامل شود=“تعداد”).ستون ها} | {سرهنگ: df[col].حالت()[0] برای سرهنگ در df.select_dtypes(شامل شود=“شیء”).ستون ها}، در محل=درست است) |
با ترکیب کردن fillna
با این شرط، میتوانیم دادههای عددی گمشده را با میانه و دادههای گمشده دستهای را با حالت پر کنیم.
با یک خط، می توانید به سرعت تمام داده های مختلف از دست رفته را در ستون های دیگر پر کنید.
2. حذف ویژگی های بسیار مرتبط
چند خطی زمانی رخ می دهد که مجموعه داده ما شامل بسیاری از متغیرهای مستقل باشد که به جای هدف، با یکدیگر همبستگی زیادی دارند. این بر عملکرد مدل تأثیر منفی میگذارد، بنابراین ما میخواهیم ویژگیهای مرتبط کمتری را حفظ کنیم.
میتوانیم ویژگی همبستگی پانداها را با انتخاب شرطی ترکیب کنیم تا ویژگیهای کمتر همبسته را سریع انتخاب کنیم. به عنوان مثال، در اینجا نحوه انتخاب ویژگی هایی است که حداکثر همبستگی پیرسون را با بقیه زیر 0.95 دارند.
df = df.loc[:, df.corr().abs().max()
df = df.loc[:, df.corr().abs().max() 0.95] |
ویژگیهای همبستگی و آستانه را امتحان کنید تا ببینید آیا مدل پیشبینی خوب است یا نه.
3. اعمال ستون مشروط
ایجاد یک ستون جدید با شرایط متعدد گاهی اوقات می تواند پیچیده باشد و خط اجرای آنها می تواند طولانی باشد. با این حال، ما میتوانیم از روش اعمال پانداها برای استفاده از شرایط خاص هنگام توسعه ویژگی جدید استفاده کنیم و در عین حال از چندین مقدار ستون استفاده کنیم.
به عنوان مثال، در اینجا نمونه هایی از ایجاد یک ستون جدید وجود دارد که در آن مقادیر بر اساس شرایط سایر مقادیر ستون هستند.
df[‘new_col’] = df.apply(lambda x: x[‘A’] * x[‘B’] اگر x[‘C’] > 0 x دیگر[‘A’] + x[‘B’]، محور=1)
df[‘new_col’] = df.اعمال شود(لامبدا x: x[‘A’] * x[‘B’] اگر x[‘C’] > 0 دیگر x[‘A’] + x[‘B’]، محور=1) |
می توانید شرایط دیگری را امتحان کنید که مطابق با الزامات شما باشد.
4. یافتن عنصر مشترک و متفاوت
پایتون انواع داده های داخلی بسیاری از جمله Set را ارائه می دهد. نوع داده Set یک داده منحصر به فرد است که فهرست نامرتب داده ها را نشان می دهد اما فقط با عناصر منحصر به فرد. اغلب برای بسیاری از عملیات داده، که شامل یافتن عناصر مشترک است، استفاده می شود.
به عنوان مثال مجموعه زیر را داریم:
set1 = {“سیب”، “موز”، “گیلاس”، “خرما”، “انجیر”} set2 = {“گیلاس”، “خرما”، “انجیر”، “انجیر”، “انگور”}
مجموعه 1 = {“سیب”، “موز”، “گیلاس”، “تاریخ”، “انجیر”} مجموعه 2 = {“گیلاس”، “تاریخ”، “زغاله”، “انجیر”، “انگور”} |
سپس، می خواهیم عنصر مشترک بین هر دو مجموعه را پیدا کنیم. می توانیم از روش زیر استفاده کنیم.
خروجی:
{‘گیلاس’، ‘خرما’، ‘انجیر’}
{“گیلاس”، “تاریخ”، “انجیر”} |
این یک راه ساده اما مفید برای یافتن عنصر مشترک است. برعکس، ما همچنین میتوانیم عناصری را پیدا کنیم که در هر دو مجموعه متفاوت هستند.
خروجی:
زمانی که لازم است عناصر مشترک و متفاوت را بیابید، از آنها در گردش کار داده خود استفاده کنید.
5. ماسک های بولی برای فیلتر کردن
هنگام کار با آرایه NumPy و شی مشتق شده آن، گاهی اوقات می خواهیم داده ها را بر اساس نیاز خود فیلتر کنیم. در این حالت، ما می توانیم یک ماسک بولی برای فیلتر کردن داده ها بر اساس شرط بولی که تنظیم کرده ایم ایجاد کنیم.
فرض کنید لیست داده های زیر را داریم.
وارد کردن numpy به عنوان داده np = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50])
واردات بی حسی به عنوان np داده ها = np.آرایه([10, 15, 20, 25, 30, 35, 40, 45, 50]) |
سپس، می توانیم از ماسک بولی برای فیلتر کردن داده های مورد نظر خود استفاده کنیم. به عنوان مثال، ما فقط اعداد زوج می خواهیم.
خروجی:
آرایه([10, 20, 30, 40, 50])
آرایه([10, 20, 30, 40, 50]) |
این نیز اساس فیلتر پانداها است. با این حال، ماسک Boolean می تواند همه کاره تر باشد زیرا در آرایه NumPy نیز کار می کند.
6. فهرست تعداد وقوع
هنگام کار با یک لیست یا هر داده دیگری با چندین مقدار، مواقعی وجود دارد که می خواهیم فرکانس هر مقدار را بدانیم. در این حالت می توانیم از تابع شمارنده برای شمارش خودکار آنها استفاده کنیم.
برای مثال، داشتن لیست زیر را در نظر بگیرید.
داده = [10, 10, 20, 20, 30, 35, 40, 40, 40, 50]
داده ها = [10, 10, 20, 20, 30, 35, 40, 40, 40, 50] |
سپس می توانیم از تابع شمارنده برای محاسبه فرکانس استفاده کنیم.
از مجموعه ها واردات شمارنده شمارنده(داده)
از مجموعه ها واردات شمارنده شمارنده(داده ها) |
خروجی:
شمارنده ({10: 2، 20: 2، 30: 1، 35: 1، 40: 3، 50: 1})
شمارنده({10: 2، 20: 2، 30: 1، 35: 1، 40: 3، 50: 1}) |
نتیجه یک فرهنگ لغت برای وقوع شمارش است. زمانی که نیاز به محاسبه فرکانس سریع دارید از آنها استفاده کنید.
7. استخراج عددی از متن
عبارات منظم (Regex) لیست کاراکترهای تعریف شده ای هستند که با یک الگو در متن مطابقت دارند. آنها معمولاً زمانی استفاده می شوند که می خواهیم دستکاری متن خاصی را انجام دهیم، و این دقیقاً همان کاری است که می توانیم با این یک خط انجام دهیم.
در مثال زیر می توانیم از ترکیب Regex و map برای استخراج اعداد از متن استفاده کنیم.
import re list(map(int, re.findall(r’\d+’, “Sample123Text456”)))
واردات دوباره فهرست(نقشه(بین المللی، دوباره.پیدا کردن(r‘\d+’، “Sample123Text456”))) |
خروجی:
مثال بالا فقط برای داده های اعداد صحیح کار می کند، اما یادگیری بیشتر در مورد عبارات منظم می تواند به شما قدرت و انعطاف پذیری برای تطبیق این خط یک خطی برای موارد استفاده چندگانه بدهد.
8. لیست تودرتو را صاف کنید
وقتی دادههای خود را برای تجزیه و تحلیل آماده میکنیم، میتوانیم با دادههای فهرستی مواجه شویم که حاوی فهرستی در فهرست است که میتوانیم آن را تودرتو بنامیم. اگر چیزی شبیه به آن پیدا کنیم، ممکن است بخواهیم آن را برای تجزیه و تحلیل یا تجسم بیشتر داده ها صاف کنیم.
برای مثال، فرض کنید لیست تودرتو زیر را داریم.
nested_list = [
[1, 2, 3]،
[4, 5]،
[6, 7, 8, 9]]
nested_list = [ [1, 2, 3]، [4, 5]، [6, 7, 8, 9] ] |
سپس می توانیم لیست را با کد زیر صاف کنیم.
خروجی:
[1, 2, 3, 4, 5, 6, 7, 8, 9] |
با استفاده از این لیست داده های تک بعدی، می توانید در صورت نیاز بیشتر و به روشی ساده تر تجزیه و تحلیل کنید.
9. فهرست به فرهنگ لغت
آیا تا به حال در موقعیتی قرار گرفته اید که چندین لیست داشته باشید و بخواهید اطلاعات موجود در فرم فرهنگ لغت را ترکیب کنید؟ به عنوان مثال، مورد استفاده ممکن است مربوط به اهداف نقشه برداری یا رمزگذاری ویژگی باشد.
در این صورت، میتوانیم فهرستی را که داریم به دیکشنری تبدیل کنیم zip
تابع
برای مثال لیست زیر را داریم.
میوه = [‘apple’, ‘banana’, ‘cherry’]مقادیر = [100, 200, 300]
میوه = [‘apple’, ‘banana’, ‘cherry’] ارزش ها = [100, 200, 300] |
با ترکیب zip و dict، می توانیم هر دو لیست بالا را در یک ترکیب کنیم.
خروجی:
{‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300}
{“سیب”: 100، “موز”: 200، “گیلاس”: 300} |
این یک راه سریع برای ترکیب هر دو قطعه داده در یک ساختار است که می تواند برای پیش پردازش بیشتر داده ها استفاده شود.
10. ادغام فرهنگ لغت
وقتی دیکشنری داریم که حاوی اطلاعاتی است که برای پیش پردازش داده ها نیاز داریم، باید آنها را ترکیب کنیم. به عنوان مثال، ما اقدام لیست به دیکشنری را مانند بالا انجام داده ایم و به دیکشنری های زیر رسیده ایم:
fruit_mapping = {‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300} مبلمان_مپینگ = {‘میز’: 100، ‘صندلی’: 200، ‘مبل’: 300}
میوه_نگاشت = {“سیب”: 100، “موز”: 200، “گیلاس”: 300} مبلمان_نقشه برداری = {“میز”: 100، “صندلی”: 200، “مبل”: 300} |
سپس، میخواهیم آنها را ترکیب کنیم، زیرا این اطلاعات میتواند در کل مهم باشد. برای این کار می توانیم از یک خط زیر استفاده کنیم.
{**نقشه_میوه، **نقشه_مبلمان }
{**میوه_نگاشت، **مبلمان_نقشه برداری } |
خروجی>> {‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300، ‘میز’: 100، ‘صندلی’: 200، ‘مبل’: 300}
خروجی>> {“سیب”: 100، “موز”: 200، “گیلاس”: 300، “میز”: 100، “صندلی”: 200، “مبل”: 300} |
همانطور که می بینید، هر دو فرهنگ لغت به یک فرهنگ تبدیل شده اند. این در بسیاری از موارد که نیاز به جمع آوری داده ها دارند بسیار مفید است.
نتیجه گیری
در این مقاله، ما ده تک لاینر مختلف پایتون را بررسی کرده ایم که گردش کار علم داده شما را بهبود می بخشد. این تک لاینرها بر موارد زیر تمرکز کرده اند:
- مدیریت کارآمد داده های از دست رفته
- حذف ویژگی های بسیار مرتبط
- اعمال ستون مشروط
- یافتن عنصر مشترک و متفاوت
- ماسک های بولی برای فیلتر کردن
- تعداد لیست وقوع
- استخراج عددی از متن
- لیست تودرتو را صاف کنید
- فهرست به فرهنگ لغت
- دیکشنری ادغام
امیدوارم این کمک کرده باشد!