یک اسکریپت پایتون بنویسید که یک فایل متنی شامل اعداد شناور (هر عدد در یک خط) را بخواند، با استفاده از تابع builtin filter اعداد معتبر (نه NaN و بزرگتر از صفر) را فیلتر کند و میانگین و انحراف معیار آن‌ها را محاسبه و در یک فایل خروجی ذخیره کند.

2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:55

0.0

برای حل این مسئله از پایتون استفاده کنید: فایل ورودی را خط‌به‌خط بخوانید، هر خط را با strip پاک کنید و با try/except به float تبدیل کنید، سپس با math.isnan مقدارهای NaN را حذف کنید. برای فیلتر کردن از تابع builtin filter همراه با یک lambda (مثلاً lambda x: not math.isnan(x) and x>0) استفاده کنید، مقادیر فیلتر شده را به لیست تبدیل کنید و با ماژول statistics (statistics.mean و statistics.stdev) یا با numpy میانگین و انحراف معیار را محاسبه کنید. نکات: قبل از محاسبه انحراف معیار بررسی کنید که تعداد داده‌ها کافی باشد، برای خودکارسازی مسیر فایل‌ها می‌توانید از argparse استفاده کنید و برای عملکرد بهتر از generatorها و جلوگیری از کرش در تبدیل‌های نامعتبر استفاده از try/except را فراموش نکنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:55
دسته بندی ها: Python Python for beginner
sara در 202 روز قبل ساعت 08:05

وقتی پس از فیلتر شدن داده‌ها کمتر از دو مقدار باقی بماند، محاسبه انحراف معیار با statistics.stdev خطا می‌دهد؛ در این وضعیت یا از pstdev استفاده کنید یا به کاربر اطلاع دهید. برای بهینه‌سازی حافظه می‌توانید از filter با lambda استفاده کنید و نتیجه را مستقیماً به mean و stdev بدهید، چون این توابع از هر iterable پشتیبانی می‌کنند. همچنین برای هر خط ورودی از strip استفاده کنید و تبدیل به float را در قالب یک try/except ایمن کنید تا از کرش ناشی از داده‌های نامعتبر جلوگیری شود. استفاده از argparse برای مدیریت مسیرهای ورودی و خروجی به خودکارسازی کار کمک می‌کند و استفاده از generatorها از پردازش خط به خط فایل شما را مقاوم می‌کند.

گزارش

1 پاسخ

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

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