Either try as much as you wish or wish as much as you try
متد 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 رو متوجه شدیم
به صورت کلاسیک هم نوشتیمش تا بهتر برامون جا بی افته
امیدوارم از این مطلب خوشتون اومده باشه
تا مطلب بعدی خدانگهدار
مطلبی دیگر از این انتشارات
نحوه ی تبدیل کلاس به کتابخانه و استفاده از آن
مطلبی دیگر از این انتشارات
ساخت سرور با پایتون
مطلبی دیگر از این انتشارات
ساخت شبیه ساز تاس با پایتون