
در فصل پیشین با روشهای دسترسی به اعضای آرایهها آشنا شدید. اکنون به مرحلهای مهمتر میرسید، خلاصهسازی و تحلیل کلی دادهها. در این قسمت از دوره آموزش نامپای در پایتون به بررسی متدهای اصلی خلاصهسازی در NumPy میپردازید:
- محاسبه مجموع با sum
- یافتن کمینه و بیشینه با min و max
- محاسبه میانگین با mean
- تجمیع تجمعی با cumsum
- عملیات بر اساس محورها (axis)
در پایان نیز با استفاده از Matplotlib، نمودار رشد فروش را ترسیم خواهیم کرد تا نتایج بهصورت بصری قابلفهم شوند. این ابزارها امکان تبدیل دادههای خام به اطلاعات معنادار و تصمیمساز را فراهم میکنند.در انتها نیز نحوه نمایش توزیعهای عددی را با کتابخانه seaborn میآموزید.
خلاصهسازی دادههای آرایهها
در این بخش از دوره آموزشی NumPy، قرار است با مجموعهای از متدها و توابع کاربردی آشنا شویم که به ما کمک میکنند:
- دادههای آرایهها را خلاصه کنیم
- یک نگاه کلی به دادهها داشته باشیم
- محاسبات آماری و جمعبندی دادهها را راحتتر انجام دهیم
برای آموزش این مفاهیم، یک دیتاست نمونه در اختیار داریم که ساختار آن به صورت زیر است:
monthly_sales = np.load("./monthly_sales.npy")
monthly_salesarray([[ 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 استفاده میکنیم. به عبارتی، برای هر ستون مجموع کل ردیفها را محاسبه میکند. مثال: فروش سالانه محصول شماره ۱ → جمع همه مقادیر ستون اول

monthly_sales.sum(axis=0)
# خروجی: array([ 59673, 315105, 1355026])(بعد یک) → جمعکردن در طول ردیف
برای هر ردیف، مجموع تمام ستونها را محاسبه میکند.

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 → جمع تجمعی فروش
هر خط روی نمودار نشاندهنده روند رشد فروش یک فروشنده است. این نمودار به ما کمک میکند تا رشد فروش در طول سال و مقایسه بین فروشندگان را به راحتی مشاهده کنیم.

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