با استفاده از defaultdict در پایتون، تابعی بنویسید که یک لیست از بردارهای عددی (مثلاً لیستهایی از اعداد یا آرایههای numpy) را گرفته، بردارها را بر اساس نُرم (اندازهٔ بردار) گرد شده به نزدیکترین عدد صحیح گروهبندی کند و میانگین بردار هر گروه را محاسبه و برگرداند.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:41 0.0
برای حل این مسئله میتوانید از collections.defaultdict برای گروهبندی استفاده کنید: ابتدا با numpy نُرم هر بردار را محاسبه و آن را با round به نزدیکترین عدد صحیح تبدیل کنید، سپس بردارها را در defaultdict(list) جمع کنید و در پایان میانگین هر لیست برداری را با numpy.mean محاسبه کنید. برای دادههای بزرگتر (مربوط به محاسبات عددی یا HPC) به جای ذخیرهٔ تمام بردارها از defaultdict برای انباشت جمع و شمارنده (sum و count) استفاده کنید تا حافظه کمتری مصرف شود؛ در صورت نیاز از پردازش دستهای (chunking) یا ابزارهای برداریسازی مانند numpy و شتابدهندهها (numba/multiprocessing) برای افزایش کارآیی بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای گروهبندی با defaultdict از کلید برابر با round(nom) استفاده کنید و سپس هر بردار را به لیست گروه مربوطه اضافه کنید تا میانگین هر گروه را محاسبه کنید. برای کاهش مصرف حافظه در دادههای بزرگ، میتوانید بجای ذخیرهسازی همه بردارها، جمع و شمارندهٔ هر گروه را نگهداری کنید و پس از پایان دادهها میانگین را محاسبه کنید. توجه کنید که روش rounding روی مقادیر نزدیک به مرزهای گرد کردن ممکن است منجر به گروهبندی نامتعارفی شود؛ استفاده از numpy.rint یا انتخاب یک سیاست صریح میتواند پایداری را بهبود بخشد. در صورت نیاز از پردازش دستهای یا ابزارهای سرعتدهنده مانند numba استفاده کنید تا کارآیی افزایش یابد.
گزارش