Table of Contents
مرور کلی فصل و هدف آن
در این فصل با یکی از مهمترین و محبوبترین کاربردهای پایتون آشنا میشوید: علم داده.
هدف این فصل این است که:
- بفهمید علم داده چیست و چه مسائلی را حل میکند.
- با شکل کلی کار یک «دانشمند داده» آشنا شوید.
- مسیر کلی کار با داده را بشناسید: از گرفتن داده تا تحلیل و مصورسازی.
- با سه کتابخانهٔ بسیار مهم برای علم داده در حد مقدماتی آشنا شوید:
NumPypandasmatplotlib- چند مثال سادهٔ تحلیل داده را ببینید تا تصویر روشنی از کاربرد عملی پایتون در علم داده داشته باشید.
جزئیات دقیق هر کتابخانه در زیرعنوانهای همین فصل خواهد آمد؛ اینجا تصویر کلی را میسازیم و ارتباط بخشها را توضیح میدهیم.
علم داده چیست و چه مشکلی را حل میکند؟
علم داده (Data Science) یعنی استفاده از:
- دادهها
- روشهای آماری
- برنامهنویسی
- و گاهی هوش مصنوعی / یادگیری ماشین
برای:
- پاسخدادن به سؤالها
- گرفتن تصمیمهای بهتر
- پیشبینی آینده
- خودکارسازی تصمیمگیریها
علم داده در عمل یعنی:
- جمعآوری داده
مثلا گرفتن داده از فایلهای متنی، Excel، پایگاهداده، وبسایتها و … - تمیز کردن و آمادهسازی داده
دادهٔ واقعی معمولا ناقص، کثیف و نامنظم است.
مثال: - مقادیر خالی (
missing values) - خطای تایپ در نامها
- فرمتهای مختلف تاریخها
- بررسی و تحلیل اکتشافی داده (EDA)
پیدا کردن الگوها و روابط ساده: - میانگینها، حداقل و حداکثر
- نمودارها برای دیدن توزیع داده
- کشف دادههای عجیب و پرت
- مدلسازی و پیشبینی (در مراحل پیشرفتهتر)
مثلا: - پیشبینی فروش ماه بعد
- پیشبینی اینکه کدام مشتری احتمال ترک دارد
- گزارش و مصورسازی نتایج
- ساخت نمودار
- جدولهای خلاصه
- داشبوردها و گزارشها برای افراد غیر فنی
در این فصل ما روی مراحل ۲، ۳ و ۵ تمرکز مقدماتی داریم؛ یعنی:
- کار با داده
- تمیز کردن و خلاصهکردن داده
- ساخت نمودارهای ساده
چرا پایتون برای علم داده محبوب است؟
پایتون یکی از محبوبترین زبانها برای علم داده است، چون:
- ساده و خواناست
برای تحلیلگر و دانشمند داده مهم است که سریع ایده را پیاده کند، نه اینکه درگیر پیچیدگیهای زبان شود. - کتابخانههای قدرتمند دارد:
NumPyبرای کار با آرایهها و محاسبات عددیpandasبرای کار با جدولها و دادههای ردیفی/ستونی (مثل Excel)matplotlibو کتابخانههای دیگر برای رسم نمودار- و در مراحل پیشرفتهتر:
scikit-learnبرای یادگیری ماشینseabornبرای نمودارهای آماری زیباstatsmodelsبرای تحلیل آماری- اجتماع (Community) بزرگ و فعال
مثال: - جوابِ بسیاری از مشکلها در Stack Overflow، وبلاگها و دورهها موجود است.
- مثالهای فراوان آماده برای تحلیل داده در GitHub وجود دارد.
- امکان ترکیب با حوزههای دیگر
مثل: - وب (برای ساخت داشبوردها و APIها)
- خودکارسازی (گزارشگیری خودکار روزانه/هفتگی)
- یادگیری ماشین و هوش مصنوعی
در این فصل روی سه کتابخانهٔ NumPy, pandas, matplotlib تمرکز میکنیم که پایهٔ کار علمی داده با پایتون هستند.
مسیر معمول یک پروژهٔ کوچک علم داده
برای درک بهتر، یک «سناریوی ساده» را تصور کنید:
میخواهیم دادههای فروش یک فروشگاه را بررسی کنیم:
- داده در یک فایلsales.csvذخیره شده است.
- میخواهیم بدانیم:
- مجموع فروش هر ماه چقدر بوده؟
- بهترین ماه فروش کدام بوده؟
- یک نمودار سادهٔ خطی از فروش ماهانه بکشیم.
گامهای معمول:
- وارد کردن کتابخانهها
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt- خواندن داده (معمولا با pandas)
df = pd.read_csv("sales.csv")- نگاه سریع به داده
print(df.head()) # چند ردیف اول
print(df.info()) # اطلاعات کلی ستونها
print(df.describe()) # آمار عددی ستونها- تمیز کردن/آماده کردن داده
مثال: - حذف ردیفهایی که مقدار فروش در آنها خالی است
df = df.dropna(subset=["amount"])- تبدیل ستون تاریخ به نوع تاریخ
df["date"] = pd.to_datetime(df["date"])- گروهبندی و خلاصهکردن
مثلا مجموع فروش در هر ماه:
df["month"] = df["date"].dt.to_period("M")
monthly_sales = df.groupby("month")["amount"].sum()
print(monthly_sales)- مصورسازی
monthly_sales.plot(kind="line")
plt.xlabel("ماه")
plt.ylabel("مجموع فروش")
plt.title("فروش ماهانه")
plt.show()
این مثال، تصویر کلیِ «کار با داده با پایتون» را نشان میدهد.
در زیربخشهای بعدی فصل، هر کدام از ابزارهای استفادهشده (NumPy, pandas, matplotlib) را جداگانه و با مثالهای سادهتر یاد میگیرید.
داده در دنیای واقعی چگونه است؟
وقتی از «داده» صحبت میکنیم، منظور فقط یک فایل تمیز و آماده نیست.
چند نوع دادهٔ رایج که در علم داده با آنها کار میکنید:
- دادههای جدولی (Tabular)
- مثل Excel، CSV
- ردیفها = رکورد (مثلا هر ردیف یک خرید، یک کاربر، یک تراکنش)
- ستونها = ویژگیها (مثلا تاریخ، مبلغ، نام مشتری)
- دادههای زمانی (Time Series)
- مثل قیمت روزانهٔ یک سهام
- تعداد بازدید روزانهٔ یک وبسایت
- دادههای متنی (Text)
- پیامهای شبکههای اجتماعی
- نظرات کاربران روی محصولات
- ایمیلها
- دادههای تصویری، صوتی، ویدئویی
که معمولا در مراحل پیشرفتهتر و در ترکیب با یادگیری عمیق بررسی میشوند.
در این دورهٔ مقدماتی، تمرکز روی دادههای جدولی و عددی/متنی ساده است، چون:
- هم رایجترند
- هم با
pandasوNumPyبهخوبی مدیریت میشوند - و هم برای یادگیری پایهها مناسباند
نقش کتابخانههای این فصل در کنار هم
در این فصل با سه کتابخانهٔ اصلی آشنا میشوید. هر کدام چه نقشی دارد؟
NumPy
- برای کار عددی سریع و آرایههای چندبعدی استفاده میشود.
- وقتی میخواهید با مجموعههای بزرگ عددی (مثلا هزاران یا میلیونها عدد) محاسبات انجام دهید،
NumPyبسیار سریعتر از لیستهای معمولی پایتون است. - پایهٔ بسیاری از کتابخانههای دیگر است (از جمله خود
pandas).
نمونهٔ ساده (نمایش ایده، توضیح کامل در بخش مخصوص NumPy میآید):
import numpy as np
a = np.array([1, 2, 3, 4])
print(a * 10) # هر عنصر در 10 ضرب میشودpandas
- روی
NumPyساخته شده و برای کار با دادههای جدولی طراحی شده است. - دو ساختار دادهٔ اصلی دارد:
Series(ستون یکبعدی)DataFrame(جدول دوبعدی شبیه Excel)
استفادهٔ معمول:
- خواندن/نوشتن داده (CSV، Excel، …)
- فیلتر کردن ردیفها
- انتخاب ستونها
- گروهبندی و محاسبهٔ آمار
- ترکیب چند جدول داده
نمونهٔ ساده (توضیح کامل در بخش pandas):
import pandas as pd
data = {
"name": ["Ali", "Sara", "Reza"],
"age": [25, 30, 22]
}
df = pd.DataFrame(data)
print(df)matplotlib
- کتابخانهٔ پایه برای رسم نمودار در پایتون است.
- میتوانید نمودارهای زیر را رسم کنید:
- خطی (line)
- ستونی (bar)
- نقطهای (scatter)
- هیستوگرام (histogram)
- و انواع دیگر
نمونهٔ ساده (توضیح کامل در بخش matplotlib):
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 15, 25]
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("یک نمودار خطی ساده")
plt.show()در علم داده، این سه کتابخانه معمولاً با هم استفاده میشوند:
pandasبرای مدیریت و تحلیل جدولهاNumPyبرای محاسبات عددی در پشتصحنهmatplotlibبرای نشان دادن نتایج بهصورت نمودار
یک «جریان کاری» ساده علم داده با پایتون
برای جمعبندی تصویری، یک روند کلی را بهصورت گامبهگام مرور کنیم.
فرض کنید یک فایل students.csv داریم با ستونهای:
name(نام)age(سن)score(نمره)
میخواهیم:
- میانگین نمرهها را حساب کنیم.
- بفهمیم چند نفر سن بالای ۱۸ سال دارند.
- یک نمودار ساده از نمرهها رسم کنیم.
گام ۱: وارد کردن کتابخانهها
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltگام ۲: خواندن داده
df = pd.read_csv("students.csv")گام ۳: بررسی کوتاه داده
print(df.head()) # چند ردیف اول
print(df.describe()) # آمار عددی: میانگین، حداقل، حداکثر و ...گام ۴: محاسبهٔ آماری ساده
میانگین نمرهها:
average_score = df["score"].mean()
print("میانگین نمرهها:", average_score)تعداد افراد بالای ۱۸ سال:
over_18 = df[df["age"] > 18]
print("تعداد افراد بالای ۱۸ سال:", len(over_18))(در فصل pandas این نوع فیلتر کردن را دقیقتر یاد میگیرید.)
گام ۵: رسم نمودار نمرهها
مثلا یک هیستوگرام ساده:
plt.hist(df["score"], bins=5) # 5 بازه برای نمرهها
plt.xlabel("نمره")
plt.ylabel("تعداد دانشآموزان")
plt.title("توزیع نمرهها")
plt.show()
این چند خط کد، یک «تحلیل داده» بسیار ساده را نشان میدهد.
در ادامهٔ فصل، در هر زیربخش:
- جزئیات
NumPy، - ابزارهای اصلی
pandas، - و روشهای پایهٔ رسم نمودار با
matplotlib
را با مثالهای بیشتری میبینید تا بتوانید خودتان چنین تحلیلهای سادهای را از صفر انجام دهید.
چه انتظاری از خودتان در پایان این فصل داشته باشید؟
بعد از اتمام تمام زیربخشهای فصل ۱۶، باید:
- بتوانید با
pandasیک فایل CSV را بخوانید و: - چند ستون را انتخاب کنید
- ردیفها را فیلتر کنید
- میانگین و مجموع برخی ستونها را حساب کنید
- مفهوم کلی
NumPy arrayرا درک کنید و: - بدانید چرا برای محاسبات عددی سریع مفید است
- چند عملیات ساده روی آرایهها انجام دهید
- با
matplotlibتوانایی رسم: - نمودار خطی
- نمودار ستونی
- یک هیستوگرام ساده
را داشته باشید.
و مهمتر از همه:
یک تصویر واقعی و عملی از اینکه «علم داده با پایتون در عمل یعنی چه؟» در ذهن شما شکل میگیرد تا اگر دوست داشتید، در مراحل بعدی بهسمت مباحث پیشرفتهتر مثل یادگیری ماشین حرکت کنید.