ترفندهای پایتون برای ردگیری داده ها — به زبان ساده

۱۱۰ بازدید
آخرین به‌روزرسانی: ۲۸ خرداد ۱۴۰۱
زمان مطالعه: ۳ دقیقه
ترفندهای پایتون برای ردگیری داده ها — به زبان ساده

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

  • ردگیری اندیس در زمان تکرار حلقه
  • به‌روزرسانی آیتم‌های دیکشنری جدید
  • ضبط اطلاعات جدید با شیئی که قابلیت استفاده مجدد دارد

کار خود را با معرفی برخی مسائل آغاز می‌کنیم و سپس به جزییات شیوه حل آن‌ها با ابزارهای پایتون می‌پردازیم. امیدواریم این رویکرد به بصری‌سازی مواردی که این ابزارهای می‌توانند در کد مورد استفاده قرار گیرند کمک کند.

ردگیری اندیس در زمان تکرار حلقه

فرض کنید لیستی از اسامی دوستان دارید. می‌خواهید یک حلقه روی لیست اجرا کنید و در عین حال اندیس آیتم‌ها را نیز ردگیری کنید برای انجام این کار می‌توانید به آسانی از enumerate کمک بگیرید:

1>>> friends = ['Ben', 'Kate', 'Thinh']
2>>> for i, item in enumerate(friends):
3>>>     print(f'{i}: {item}')
40: Ben
51: Kate
62: Thinh

یا این که می‌توانید از «خلاصه‌سازی دیکشنری» (dictionary comprehension) کمک بگیرید:

1>>> {i: friends[i] for i in range(len(friends))}
2{0: 'Ben', 1: 'Kate', 2: 'Thinh'}

به‌روزرسانی آیتم‌های دیکشنری جدید

فرض کنید از یک دیکشنری برای ردگیری کلمات و تعدادشان در جمله نخست یک متن استفاده می‌کنید:

1sent1 = {'love': 1, 'hate': 3}

اما زمانی که به جمله دوم می‌رسید، می‌خواهید دیکشنری قبلی را با جمله جدید به‌روزرسانی کنید:

1sent2 = {'love': 2, 'flower': 1}

بنابراین کیسه به‌روزرسانی شده کلمات به صورت زیر درمی‌آید:

1{'love': 3, 'hate': 3, 'flower': 1}

بهتر است ابزارهایی داشته باشیم که به ما امکان می‌دهند این کار را به آسانی انجام دهیم. به این منظور می‌توانید از collections.Counter کمک بگیرید. کلاس collections.Counter امکان می‌دهد که عنصر یک مجموعه بیش از یک عدد باشند.

1from collections import Counter
2bag_words = Counter()
3sent1 = {'love': 1, 'hate': 3}
4bag_words.update(sent1)
5sent2 = {'love': 2, 'flower': 1}
6bag_words.update(sent2)
7bag_words

خروجی کد فوق به صورت زیر است:

1Counter({'love': 3, 'hate': 3, 'flower': 1})

اکنون می‌توانید به سهولت «کیسه کلمات» (bag of words) را به‌روزرسانی کرده و اطلاعاتی بیشتری از جمله‌های دیگر گردآوری کنید. برای یافتن تعداد کلمات یکتا در جمله می‌توان از len استفاده کرد:

1>>> len(bag_words)
23

همچنین می‌توانید کل کلمات را در جمله بیابید. به این منظور از sum استفاده کنید:

1>>> sum(bag_words.values())
27

تعریف کردن اشیای دارای قابلیت استفاده مجدد با Namedtuple

فرض کنید می‌خواهید رد لیستی از اطلاعات در مورد دوستان را بگیرید تا یک جشن تولد را آماده کنید. از آنجا که هم اینک به این اطلاعات دسترسی ندارید، ابتدا باید یک place holder where ایجاد کنید تا بتوانید اطلاعات را بعداً وارد نمایید. اگر می‌خواهید تاریخ تولد Kate، غذای مورد علاقه، رنگ محبوب و خصوصیت‌های روان‌شناختی را ذخیره کنید، باید به صورت زیر عمل کنید:

1>>> Kate = Friend('Feb', 'cake', 'pink', True)

همچنین زمانی که تاریخ تولید کیت را به خاطر نیاورید می‌توانید به صورت زیر عمل کنید:

1>>> Kate.birthday
2'Feb'

این شیء کلاس در پایتون به شما امکان می‌دهد که وهله‌ای از Kate ایجاد کنید، اما ممکن است متوجه شوید که ایجاد یک کلاس Friend برای نگهداری اطلاعات ساده ممکن است کاری زمان‌گیر باشد. اگر چنین باشد، می‌توانید از تابع namedtuple استفاده کنید. امکان تعریف یک شیء با قابلیت استفاده مجدد را برای رکوردها می‌دهد که با وجود آن مطمئن می‌شویم نام‌های صحیحی برای فیلدهای خود استفاده می‌کنیم:

1from collections import namedtuple
2Friend = namedtuple('Friend' , 'birthday food color introvert')
3Kate = Friend('Feb', 'cake', 'pink', True)
4Ben = Friend('Jan', 'fish', 'red', False)

برای نمایش اطلاعات در مورد کیت به صورت زیر عمل می‌کنیم:

1>>> Kate
2Friend(birthday='Feb', food='cake', color='pink', introvert=True)

اگر بخواهیم بدانیم آیا Ben درونگرا یا برونگرا است، می‌توانیم از کد زیر استفاده کنیم:

1>>> Ben.introvert
2False

سخن پایانی

در این مقاله با شیوه ردگیری اطلاعات با استفاده از enumerate، خلاصه‌سازی مجموعه، Counter و nametuples آشنا شدیم. امیدواریم این راهنما اطلاعات مفیدی در مورد ابزارهای علوم داده در اختیار شما قرار داده باشد.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
towardsdatascience
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *