Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Purata Bergulir dalam Python dengan Cekap dengan NumPy?

Bagaimana untuk Mengira Purata Bergulir dalam Python dengan Cekap dengan NumPy?

Susan Sarandon
Susan Sarandonasal
2024-11-16 08:16:03210semak imbas

How to Efficiently Calculate a Rolling Average in Python with NumPy?

Mengira Purata Bergulir / Bergerak dalam Python dengan NumPy / SciPy

Walaupun fungsi NumPy dan SciPy yang meluas, pengiraan purata bergerak boleh tugas yang sangat kompleks. Artikel ini menangani isu ini dengan menyediakan penyelesaian yang mudah dilaksanakan menggunakan np.cumsum NumPy.

Cara Paling Mudah untuk Melaksanakan Purata Pergerakan dengan NumPy

Untuk bukan yang mudah. -purata bergerak berwajaran, np.cumsum menyediakan penyelesaian yang cekap:

def moving_average(a, n=3):
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / n

Prestasi dan Kesederhanaan

Kaedah ini menawarkan prestasi tinggi kerana ia memanfaatkan np.cumsum yang dioptimumkan oleh NumPy fungsi, mengatasi kaedah berasaskan FFT dalam kes tertentu. Selain itu, ia mengelakkan kemungkinan ralat yang dikaitkan dengan algoritma yang kompleks, menjadikannya sangat boleh dipercayai.

Rasional untuk Mengecualikan Fungsi Purata Pergerakan dalam NumPy

Walaupun utilitinya jelas, mungkin terdapat sebab yang sah untuk mengecualikan kefungsian purata bergerak daripada teras NumPy:

  • Kesederhanaan berbanding Kefungsian: NumPy berusaha untuk mengekalkan teras yang ringkas dan padat, mengelakkan kembung yang tidak perlu daripada fungsi khusus.
  • Ketersediaan Penyelesaian yang Dilaksanakan Pengguna: Seperti yang ditunjukkan di atas, melaksanakan purata bergerak dengan NumPy adalah mudah, menjadikannya tidak perlu untuk menduplikasi fungsi dalam perpustakaan.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Purata Bergulir dalam Python dengan Cekap dengan NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn