متد cumsum یا مجموع تجمعی

به نام خدا

سلام

امیدوارم حالتون خوب باشه

توی این مطلب میخوایم یه متد نسبتا معروف رو توی نامپای که به نام cumsum یا cumulative sum با هم چک کنیم.



cumsum یعنی چه؟

cumsum مخفف cumulative sum هستش که به فارسی میشه جمع تجمیعی

جمع تجمیعی یعنی چی؟

فرض کنید شما یه لیست دارید که چند تا عدد داخلشه، با متد cumsum کتابخانه ی numpy میتونید دونه دونه ایندکس ها رو تا ایندکس ۰ جمع کنید.

مثال:

شما مثلا یه لیستی دارید که اینجوریه:

[1,2,3,4,5]

خروجی باید به این صورت باشه:

[1,3,6,10,15]

اومد از ایندکس ۰ شروع کرد و با اولین ایندکس جمع بکنه، دید خودش ایندکس اوله(همون اندیس ۰ منظورمه) پس خودش رو وارد لیست کرد.

بعد ایندکس ۱ یا همون عدد ۲ اومد خودش رو با ایندکس ۰ جمع کرد و خودش رو داخل لیست جدید کرد

بعدش ایندکس ۲ اومد(همون عدد ۳) خودش رو با ایندکس های ۱و۰ جمع کرد و خودش رو وارد لیست جدید کرد.

این داستان ادامه داشت تا رسید به ایندکس ۶ یا همون عدد ۵، خودش رو با تک تک اون ها جمع کرد. بعد یه نگاه به عقبش انداخت و دید دیگه هیشکی بعدش نیست، پس یهو در لیست قبلی رو بست و خودش رو پرت کرد توی لیست جدید.

اینجا به صورت یه قصه این مفهوم رو توضیح دادم

حالا میریم سراغ کد نویسی

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

list=[10,20,30,40,50]
new_list=[]
j=0
for i in range(0,len(list)):	
	j+=list[i]
	new_list.append(j)
print(new_list)

خروجی به صورت زیر خواهد بود:

[10, 30, 60, 100, 150]



حالا از کتابخانه ی numpy کمک میگیریم که باهاش راحت تر میتونیم همین کار رو انجام بدیم

import numpy as np
a = np.array([10,20,30,40,50])
print(np.cumsum(a))

خروجی این هم این شکلی میشه:

[ 10  30  60 100 150]




توی این مطلب مفهوم متد cumsum رو متوجه شدیم

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


امیدوارم از این مطلب خوشتون اومده باشه

تا مطلب بعدی خدانگهدار