با استفاده از itertools.cycle یک تابع پایتون بنویسید که میانگین متحرک وزنی را روی یک لیست عددی محاسبه کند بهطوری که اگر طول داده از طول وزنها بیشتر باشد وزنها بهصورت چرخهای تکرار شوند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:30 0.0
برای حل این مسئله از itertools.cycle استفاده کنید تا دنبالهٔ بینهایتی از وزنها بسازید و آن را با دادهها همطول کنید، سپس با استفاده از zip و یک لیست کامپرهِنشن برای هر پنجرهی مورد نظر حاصلضرب مقادیر و وزنها را جمع کنید و بر مجموع وزنها تقسیم کنید. نکات: وزنها را قبل از استفاده نرمال کنید، برای پنجرهٔ متحرک از برشها (slicing) یا توابع سادهٔ لیست استفاده کنید و برای جلوگیری از خطا در انتهای لیست رفتار دلخواه (مثل نپرداختن به پنجرههای ناقص یا پر کردن با صفر) را مشخص کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی میانگین متحرک وزنی با استفاده از itertools.cycle، وزنهها را قبل از استفاده نرمال کنید تا مجموع آنها برابر 1 شود. از cycle برای تکرار نامحدود weights استفاده کنید و با slicing یا zip اندازهها را همطول کنید تا هر پنجره با وزنهایش ضرب شود. در پایان لیست باید تصمیم بگیرید که پنجرههای ناقص را نادیده بگیرید یا با صفر پر کنید و صراحتاً رفتار مطلوب را مستندسازی کنید. همچنین بهجای ساخت دادههای اضافی، از islice یا برشهای کوچک برای محدود کردن طول داده استفاده کنید تا مصرف حافظه بهینه بماند.
گزارش