با استفاده از functools.singledispatch یک تابع در پایتون بسازید که مقدار میانگین مجموعه داده‌های ورودی را برای انواع مختلف (لیست پایتون، numpy.ndarray، pandas.Series و عدد منفرد) محاسبه کند و در صورت نوع ناشناخته خطا نشان دهد.

0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:08

0.0

برای حل این مسئله از functools.singledispatch به‌عنوان پوئن توزیع نوع استفاده کنید: یک تابع پایه با دکوراتور @singledispatch تعریف کنید که برای نوع عمومی خطا برگرداند، سپس با @func.register انواع موردنظر را ثبت کنید (مثلاً list، numpy.ndarray، pandas.Series و numbers.Number). برای آرایه‌های numpy از numpy.mean و برای pandas.Series از متد .mean() استفاده کنید و برای لیست‌ها یا سایر iterable‌ها می‌توانید آن‌ها را به numpy.array تبدیل کنید. نکات: از import functools, numpy as np, pandas as pd و from numbers import Number استفاده کنید، ورودی‌ها را در تست‌های خود با داده‌های عددی و خالی امتحان کنید و در اسکریپت‌های خود می‌توانید این تابع را برای پردازش خودکار فایل‌ها یا داده‌های آزمایشگاهی فراخوانی کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:08
دسته بندی ها: Python Python for beginner
reyhaneh در 221 روز قبل ساعت 14:28

استفاده از functools.singledispatch به شما امکان می‌دهد یک تابع واحد برای انواع مختلف داده‌ها تعریف کنید و با ثبت توابع افزوده برای لیست، numpy.ndarray، pandas.Series و numbers.Number مقدار میانگین را محاسبه کنید. برای numpy.ndarray از np.mean استفاده کنید و برای pandas.Series از .mean() استفاده کنید و برای لیست‌ها یا سایر iterableها می‌توانید آن‌ها را با np.asarray تبدیل کنید تا فرایند به صورت یکنواخت انجام شود. اگر نوعی ثبت نشده باشد یا داده ورودی نامعتبر باشد، پیامی واضح از طریق تابع پایه بدهید یا استثناء مناسبی مانند TypeError برگردانید تا کاربران بدانند ورودی پشتیبانی نمی‌شود. در تست‌ها داده‌های خالی و انواع غیرعددی را هم مد نظر قرار دهید، چون numpy و pandas با مقادیر missing یا غیر عددی رفتارهای متفاوتی دارند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری