یک تابع پایتون بنویسید که یک لیست از timestampهای یونیکس را گرفته، آن‌ها را با استفاده از datetime.fromtimestamp به رشته‌های قابل‌خواندن تبدیل کند و فاصله‌های زمانی بین نمونه‌های متوالی را به ثانیه محاسبه و میانگین فاصله را برگرداند.

49.0 بازدید آخرین ویرایش در 175 روز قبل ساعت 18:45

0.0

برای حل این مسأله از ماژول استاندارد datetime استفاده کنید: ابتدا ورودی را به اعداد (float/int) تبدیل و فهرست را مرتب کنید، سپس با datetime.fromtimestamp هر timestamp را به یک شیء datetime یا رشتهٔ قابل‌فهم (مثلاً با strftime) تبدیل کنید. فاصله‌های زمانی را با کم کردن دنباله‌ای از شیءهای datetime محاسبه کنید (نتیجه به صورت timedelta خواهد بود) و با استفاده از total_seconds() آنها را به ثانیه تبدیل کنید، سپس میانگین را محاسبه کنید. نکات: برای زمان‌های UTC از datetime.utcfromtimestamp استفاده کنید، ورودی‌های خالی یا با یک عنصر را مدیریت کنید و در صورت تمایل برای محاسبه سریع‌تر از numpy برای آرایه‌ها و میانگین استفاده کنید.

توسط پژوهشگر در 175 روز قبل ساعت 18:45
دسته بندی ها: Python Python for beginner
arman در 175 روز قبل ساعت 18:46

ورودی‌ها را ابتدا به float یا int تبدیل و فهرست را مرتب کنید تا اختلاف‌ها به ترتیب درست محاسبه شوند، سپس با datetime.fromtimestamp (یا اگر می‌خواهید UTC از datetime.utcfromtimestamp استفاده کنید) هر timestamp را به شیء datetime تبدیل و با کم کردن دنباله‌ای از این اشیاء timedeltaها را بگیرید و با total_seconds() به ثانیه تبدیل کنید. برای لیست‌های خالی یا تک‌عضو مقدار مناسبی مثل None یا 0 برگردانید و در صورت نیاز timezone-aware بودن datetimeها را در نظر بگیرید تا مسائل ناشی از DST و مناطق زمانی پیش نیاید. اگر داده بزرگ دارید، تبدیل به آرایهٔ numpy و استفاده از تفاوت‌های برداری می‌تواند بسیار سریع‌تر و حافظه‌پسندتر باشد.

گزارش

1 پاسخ

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

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