Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa NumPy Tidak Mempunyai Fungsi Terbina dalam untuk Mengira Purata Pergerakan?

Mengapa NumPy Tidak Mempunyai Fungsi Terbina dalam untuk Mengira Purata Pergerakan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 14:14:03637semak imbas

Why Doesn't NumPy Have a Built-in Function for Calculating Moving Averages?

Mengira Rolling / Moving Average dengan Python NumPy / SciPy

walaupun kegunaan purata bergerak dalam analisis siri masa, NumPy dan SciPy tidak menawarkan fungsi kendiri untuk tujuan ini, menimbulkan persoalan tentang rasional di sebalik ini peninggalan.

Melaksanakan Purata Pergerakan dalam NumPy

Satu pendekatan mudah untuk melaksanakan purata bergerak dalam NumPy ialah melalui fungsi np.cumsum, yang mengumpul elemen tatasusunan. Tatasusunan cumsum yang terhasil kemudiannya boleh dihiris dengan sewajarnya untuk mendapatkan purata bergerak.

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

Kaedah ini agak pantas dan mengelakkan penyelesaian berbelit yang terdedah kepada ralat.

Sebab Kekurangan Bateri Termasuk Kefungsian

Walaupun kelihatan mudah untuk bergerak pelaksanaan purata, sebab ketiadaannya dalam fungsi teras NumPy berkemungkinan berkaitan dengan sifat pengkhususan operasi tersebut. NumPy memfokuskan pada menyediakan operasi berangka asas, manakala algoritma khusus seperti analisis siri masa sering diserahkan kepada pakej khusus. Pendekatan ini membolehkan NumPy mengekalkan fungsi terasnya dan mengelakkan kembungnya dengan alatan khusus.

Atas ialah kandungan terperinci Mengapa NumPy Tidak Mempunyai Fungsi Terbina dalam untuk Mengira Purata Pergerakan?. 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