Sokan Academy

در فصل پیشین با روش‌های دسترسی به اعضای آرایه‌ها آشنا شدید. اکنون به مرحله‌ای مهم‌تر می‌رسید، خلاصه‌سازی و تحلیل کلی داده‌ها. در این قسمت از دوره آموزش نامپای در پایتون به بررسی متدهای اصلی خلاصه‌سازی در NumPy می‌پردازید:

  • محاسبه مجموع با sum
  • یافتن کمینه و بیشینه با min و max
  • محاسبه میانگین با mean
  • تجمیع تجمعی با cumsum
  • عملیات بر اساس محورها (axis)

در پایان نیز با استفاده از Matplotlib، نمودار رشد فروش را ترسیم خواهیم کرد تا نتایج به‌صورت بصری قابل‌فهم شوند. این ابزارها امکان تبدیل داده‌های خام به اطلاعات معنادار و تصمیم‌ساز را فراهم می‌کنند.در انتها نیز نحوه نمایش توزیع‌های عددی را با کتابخانه seaborn می‌آموزید.

خلاصه‌سازی داده‌های آرایه‌ها

در این بخش از دوره آموزشی NumPy، قرار است با مجموعه‌ای از متدها و توابع کاربردی آشنا شویم که به ما کمک می‌کنند:

  • داده‌های آرایه‌ها را خلاصه کنیم
  • یک نگاه کلی به داده‌ها داشته باشیم
  • محاسبات آماری و جمع‌بندی داده‌ها را راحت‌تر انجام دهیم

برای آموزش این مفاهیم، یک دیتاست نمونه در اختیار داریم که ساختار آن به صورت زیر است:

monthly_sales = np.load("./monthly_sales.npy")
monthly_sales
array([[ 4134, 23925,  8657],
       [ 4116, 23875,  9142],
       [ 4673, 27197, 10645],
       [ 4580, 25637, 10456],
       [ 5109, 27995, 11299],
       [ 5011, 27419, 10625],
       [ 5245, 27305, 10630],
       [ 5270, 27760, 11550],
       [ 4680, 24988,  9762],
       [ 4913, 25802, 10456],
       [ 5312, 25405, 13401],
       [ 6630, 27797, 18403]])
  • ۱۲ ردیف
  • ۳ ستون

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

  • ردیف‌ها → ماه‌های سال
  • ستون‌ها → میزان فروش محصولات مختلف

یا به شکل دیگری هم می‌توان آن را در نظر گرفت:

  • ردیف‌ها → ماه‌های سال
  • ستون‌ها → میزان فروش هر فروشنده

سؤال اصلی که در این قسمت بررسی می‌کنیم:
در طول یک سال، مجموع کل فروش چقدر بوده است؟ برای پاسخ به این سؤال، از متدها و توابع خلاصه‌سازی (Aggregation Methods) در NumPy استفاده می‌کنیم. این توابع به ما امکان می‌دهند که:

  • مجموع (sum)
  • میانگین (mean)
  • بیشینه و کمینه (max, min)
  • و سایر شاخص‌های آماری

را به راحتی روی آرایه‌ها محاسبه کنیم و دید کلی از داده‌ها به دست بیاوریم.

خلاصه‌سازی داده‌ها با متد sum

فرض کنید می‌خواهیم کل مقادیر آرایه ۱۲×۳ را با هم جمع کنیم و مجموع کل فروش سالانه را به دست بیاوریم. در NumPy برای این کار از متد sum  استفاده می‌کنیم:

monthly_sales.sum()

# خروجی:
# 509,804
  • با این دستور، تمام عناصر آرایه با هم جمع می‌شوند
  • نتیجه یک عدد منفرد است که حاصل جمع کل داده‌ها را نشان می‌دهد

جمع‌بندی بر اساس محور (Axis)

گاهی نیاز داریم که جمع‌بندی فقط روی یک بعد خاص انجام شود. برای مثال:

  • مجموع فروش یک محصول مشخص در کل سال
  • مجموع فروش در یک ماه خاص

برای این کار از پارامتر axis در متد sum  استفاده می‌کنیم. به عبارتی، برای هر ستون مجموع کل ردیف‌ها را محاسبه می‌کند. مثال: فروش سالانه محصول شماره ۱ → جمع همه مقادیر ستون اول

استفاده از پارامتر axis در sun برای جمع کردن ستون‌ها

monthly_sales.sum(axis=0)

# خروجی: array([  59673,  315105, 1355026])

(بعد یک) → جمع‌کردن در طول ردیف

برای هر ردیف، مجموع تمام ستون‌ها را محاسبه می‌کند.

استفاده از پارامتر axis در sun برای جمع کردن ردیف‌ها

monthly_sales.sum(axis=1)

# خروجی: array([36716, 37133, 42515, 40673, 44403, 43055, 43180, 44580, 39430,
# 41171, 44118, 52830])

خلاصه‌سازی داده‌ها با متد min

متد min  مشابه متد sum  عمل می‌کند، اما کمترین مقدار موجود در آرایه را برمی‌گرداند. مثال‌ها:

  • اگر بدون هیچ پارامتری اجرا شود، کمترین عدد در کل آرایه را نشان می‌دهد:
monthly_sales.min()

# خروجی:
# 4116
  • اگر بخواهیم حداقل مقدار را بر اساس محور یکم بررسی کنیم:
monthly_sales.min(axis=1)

# خروجی: array([4134, 4116, 4673, 4580, 5109, 5011, 5245, 5270, 4680, 4913, 5312, 6630])

کمترین مقدار برای ماه اول 4134 و برای ماه اخر 6630 هست و همینطور مابقی ردیف‌ها

خلاصه‌سازی داده‌ها با متد max

برای یافتن بیشترین مقدار موجود در آرایه از متد max  استفاده می‌کنیم.این متد نیز می‌تواند بدون محور (axis) اجرا شود. بیشترین مقدار در کل آرایه:

monthly_sales.max()

# خروجی:
# 27995

خلاصه‌سازی داده‌ها با متد mean

متد mean میانگین داده‌ها را محاسبه می‌کند و منطق عملکرد آن مشابه sum و min است. مثال‌ها:

  • میانگین فروش کل سال:
monthly_sales.mean()

# خروجی:
# 14161.222222222223
  • میانگین فروش هر فروشنده در طول سال (محور 0):
monthly_sales.mean(axis=0)

# خروجی: array([ 4972.75 , 26258.75 , 11252.16666667])
  • میانگین فروش ماهانه (محور 1):
monthly_sales.mean(axis=1)

# خروجی: array([12238.66666667, 12377.66666667, 14171.66666667, 13557.66666667,
# 14801.        , 14351.66666667, 14393.33333333, 14860.        ,
# 13143.33333333, 13723.66666667, 14706.        , 17610.        ])

به این ترتیب می‌توانیم دید کلی از میانگین فروش کل، فروش هر محصول یا فروش هر ماه به دست بیاوریم.

خلاصه‌سازی داده‌ها با متد cumsum

متد cumsum  که مخفف Cumulative Sum است، برای محاسبه جمع تجمعی عناصر آرایه استفاده می‌شود. این متد کاربرد زیادی دارد، مخصوصاً زمانی که بخواهیم روند رشد فروش یا تغییرات تجمعی داده‌ها را بررسی کنیم. فرض کنید می‌خواهیم ببینیم فروشنده اول در سه ماه اول سال چقدر فروش داشته است. به طور راحت تر میزان رشد فروش و بدونیم چقدر هست

monthly_sales.cumsum(axis=0)
array([[  4134,  23925,   8657],
       [  8250,  47800,  17799],
       [ 12923,  74997,  28499],
       [ 17503, 100634,  38900],
       [ 22612, 128629,  50199],
       [ 27623, 156048,  60824],
       [ 32868, 183353,  71454],
       [ 38138, 211111,  83000],
       [ 42818, 236101,  92766],
       [ 47731, 261903, 103222],
       [ 53043, 287308, 116623],
       [ 59673, 315105, 135026]])
  • در نهایت، ردیف آخر نشان‌دهنده مجموع فروش سالانه هر فروشنده است.
cumsum_by_seller1 = monthly_sales.cumsum(axis=0)[:,0]
cumsum_by_seller3 = monthly_sales.cumsum(axis=0)[:,-1]

cumsum_by_seller1

# خروجی: array([ 4134,  8250, 12923, 17503, 22612, 27623, 32868, 38138, 42818,
# 47731, 53043, 59673])"""
  • با چاپ این متغیرها می‌توانیم روند فروش هر فروشنده را مشاهده کنیم

رسم نمودار رشد فروش با Matplotlib

برای دیدن روند رشد فروش به صورت نمودار، از کتابخانه Matplotlib  استفاده می‌کنیم اول کتابخانه را ایمپورت میکنیم

import matplotlib.pyplot as plt


plt.plot(np.arange(1,13), cumsum_by_seller1, label="seller 1")

plt.plot(np.arange(1,13), cumsum_by_seller3, label="seller 3")
plt.legend()
plt.show()
  • محور X → ماه‌ها (1 تا 12)
  • محور Y → جمع تجمعی فروش

هر خط روی نمودار نشان‌دهنده روند رشد فروش یک فروشنده است. این نمودار به ما کمک می‌کند تا رشد فروش در طول سال و مقایسه بین فروشندگان را به راحتی مشاهده کنیم.

روند رشد فروش به صورت نمودار، از کتابخانه Matplotlib

میبینیم که فروشنده سوم رشد بالاتری نسبت به فروشنده اول دارد تا همین جا برای این درس کافی هست.

جمع بندی

در این درس یاد گرفتید چگونه برای خلاصه‌سازی و تحلیل داده‌ها از متدهای مختلف استفاده کنید؛ از محاسبه‌ی مجموع، میانگین، بیشینه و کمینه گرفته تا جمع تجمعی داده‌ها با cumsum. همچنین با جمع‌بندی بر اساس محور (Axis) توانستید داده‌ها را در سطرها و ستون‌ها تحلیل کنید و در نهایت با استفاده از Matplotlib، روند و رشد فروش را به‌صورت نموداری و قابل فهم نمایش دهید.
این ابزارها به شما کمک می‌کنند داده‌های خام را به اطلاعات قابل تحلیل و تصمیم‌گیری تبدیل کنید.

Numpymulti dimensionalماتریسنامپایکتابخانه پایتونآنالیز دادهتحلیل دادهData Sciencepythonپایتون

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.