یک برنامه پایتون بنویسید که توان nام هر عنصر یک لیست از اعداد را با استفاده از math.pow یا pow محاسبه کند و سپس همین کار را با numpy برای آرایههای بزرگتر بهصورت برداری (vectorized) انجام داده و زمان اجرا را مقایسه کند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:49 0.0
برای حل، ابتدا تابعی بسازید که با استفاده از تابع توکار pow یا math.pow روی هر عنصر یک لیست در یک حلقه توان را محاسبه کند، سپس همان ورودی را به یک numpy.array تبدیل کرده و از numpy.power (یا عملگر ** روی آرایهها) برای محاسبه برداری استفاده کنید. با ماژول timeit یا time زمان اجرا را برای لیستهای کوچک و بزرگ مقایسه کنید تا نشان دهید در محاسبات عددی و کاربردهای HPC، استفاده از بردارسازی numpy سرعت و بهرهوری بالاتری دارد؛ نکات عملی: از dtype مناسب (مثلاً float64) استفاده کنید و از حلقههای پایتون برای دادههای بزرگ اجتناب کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از حلقههای پایتون برای محاسبه توان هر عنصر روی دادههای بزرگ بهشدت کند است، بنابراین تبدیل لیست به numpy.array و استفاده از numpy.power یا عملیات ** روی آرایهها را ترجیح دهید. تفاوت کلیدی بین math.pow و pow در پایتون این است که math.pow همواره به float تبدیل میکند و با آرایهها مستقیم کار نمیکند، در حالی که np.power با آرایهها بهطور برداری عمل میکند. از dtype مناسب مثل float64 استفاده کنید تا محاسبات دقیق و ناسازگاریهای نوع داده کم شود. برای مقایسه زمان اجرا از timeit یا time.perf_counter استفاده کنید و نتایج را برای دادههای کوچک و بزرگ گزارش کنید.
گزارش