Numpy Moving Average

Numpy Moving Average



Bago simulan ang ating paksa, unawain natin kung ano ang moving average. Sa mga istatistika, ang isang moving average ay isang pamamaraan upang kalkulahin at pag-aralan ang mga punto ng data. Kinakalkula nito ang mga punto ng data sa pamamagitan ng paggawa ng isang serye ng isang average ng iba't ibang mga subset mula sa isang buong dataset. Kaya, ang moving average ay isang pagsukat na nakakakuha ng karaniwang pagbabago sa isang serye ng impormasyon sa paglipas ng panahon. Ang paglipat ay isa sa mga pinaka-kakayahang umangkop at madalas na ginagamit na mga tagapagpahiwatig ng teknikal na pagsusuri. Dahil napakasimple nitong gamitin, ginagamit ito ng mga propesyonal na mamumuhunan bilang isang paraan ng isang tiyak na hanay ng data sa mga istatistika. Maaari din naming kalkulahin ang isang moving average sa isang mas maikling panahon sa pamamagitan ng paggamit nito sa pang-araw-araw o minutong data. Halimbawa: Kapag tinutukoy ang isang 10-araw na moving average, sa aming halimbawa, ibubuod lang namin ang mga pagsasara ng presyo mula sa alinman sa nakaraang sampung araw at hatiin ang resulta sa sampu. Sa susunod na araw, kakalkulahin din namin ang presyo sa huling sampung araw na ang ibig sabihin ay hindi namin kukuwentahin ang presyo ng unang araw. Ito ay mas palitan ng aming presyo kahapon. Ang data ay nagbabago sa ganitong paraan sa bawat paglipat ng araw, ito ay kilala bilang ang moving average para sa kadahilanang ito. Ang layunin ng moving average ay upang matukoy ang simula ng isang trend, pagkatapos ay sundin ang pag-usad nito at iulat din ang pagbabalik nito sakaling mangyari ito. Ang formula para kalkulahin ang moving average ay Ft = (Dt1+Dt2+Dt3…+Dtn)/n. Kung saan ang Dt ay Demand sa panahon t at Ft ay Pagtataya sa oras t.

Syntax:

Maaari naming kalkulahin ang moving average sa iba't ibang paraan na ang mga sumusunod:

Paraan 1:

NumPy. cumsum ( )

Ibinabalik nito ang kabuuan ng mga elemento sa ibinigay na array. Maaari nating kalkulahin ang moving average sa pamamagitan ng paghahati ng output ng cumsum() sa laki ng array.







Paraan 2:

NumPy. at . karaniwan ( )

Mayroon itong mga sumusunod na parameter.



a: data sa array form na dapat i-average.



axis: ang uri ng data nito ay int at ito ay isang opsyonal na parameter.





timbang: isa rin itong array at opsyonal na parameter. Maaari itong maging kapareho ng hugis ng isang 1-D na hugis. Sa kaso ng isang dimensyon, dapat itong magkaroon ng pantay na haba gaya ng sa 'a' array.

Tandaan na tila walang karaniwang function sa NumPy upang kalkulahin ang moving average upang magawa ito ng ilang iba pang mga pamamaraan.



Paraan 3:

Ang isa pang paraan na maaaring magamit upang kalkulahin ang moving average ay:

hal. makipagkumpitensya ( a , sa , mode = 'puno' )

Sa syntax na ito, ang a ay ang unang dimensyon ng pag-input at ang v ay ang pangalawang halaga ng dimensyon ng pag-input. Ang mode ay ang opsyonal na halaga, maaari itong maging puno, pareho, at wasto.

Halimbawa # 01:

Ngayon, para ipaliwanag pa ang tungkol sa moving average sa Numpy, magbigay tayo ng halimbawa. Sa halimbawang ito, kukunin natin ang moving average ng isang array na may convolve function ng NumPy. Kaya, kukuha kami ng array 'a' na may 1,2,3,4,5 bilang mga elemento nito. Ngayon, tatawagin natin ang function na np.convolve at iimbak ang output nito sa ating 'b' na variable. Pagkatapos nito, ipi-print namin ang halaga ng aming variable na 'b'. Kakalkulahin ng function na ito ang gumagalaw na kabuuan ng aming input array. Ipi-print namin ang output upang makita kung tama ang aming output o hindi.

Pagkatapos nito, iko-convert namin ang aming output sa moving average gamit ang parehong convolve method. Upang kalkulahin ang moving average, kailangan lang nating hatiin ang gumagalaw na kabuuan sa bilang ng mga sample. Ngunit ang pangunahing problema dito ay dahil ito ay isang moving average ang bilang ng mga sample ay patuloy na nagbabago depende sa lokasyon kung saan tayo naroroon. Kaya, para malutas ang isyung iyon, gagawa lang kami ng listahan ng mga denominator at kailangan namin itong gawing average.

Para sa layuning iyon, nagpasimula kami ng isa pang variable na 'denom' para sa denominator. Ito ay simple para sa pag-unawa sa listahan gamit ang range trick. Ang aming array ay may limang magkakaibang elemento kaya ang bilang ng mga sample sa bawat lugar ay mula isa hanggang lima at pagkatapos ay aatras mula lima hanggang isa. Kaya, magdadagdag lang kami ng dalawang listahan nang magkasama at iimbak namin ang mga ito sa aming 'denom' na parameter. Ngayon, ipi-print namin ang variable na ito upang suriin kung ang sistema ay nagbigay sa amin ng mga tunay na denominator o hindi. Pagkatapos nito, hahatiin namin ang aming gumagalaw na kabuuan sa mga denominator at i-print ito sa pamamagitan ng pag-iimbak ng output sa variable na 'c'. Ipatupad natin ang ating code upang suriin ang mga resulta.

angkat numpy bilang hal.

a = [ 1 , dalawa , 3 , 4 , 5 ]

b = hal. makipagkumpitensya ( a , hal. mga_tulad ( a ) )

print ( 'Moving Sum' , b )

pangalan = listahan ( saklaw ( 1 , 5 ) ) + listahan ( saklaw ( 5 , 0 , - 1 ) )

print ( 'Mga Denominador' , pangalan )

c = hal. makipagkumpitensya ( a , hal. mga_tulad ( a ) ) / pangalan

print ( 'Moving Average' , c )

Pagkatapos ng matagumpay na pagpapatupad ng aming code, makukuha namin ang sumusunod na output. Sa unang linya, nai-print namin ang 'Moving Sum'. Makikita natin na mayroon tayong '1' sa simula at '5' sa dulo ng array, tulad ng mayroon tayo sa orihinal na array. Ang natitirang mga numero ay ang mga kabuuan ng iba't ibang elemento ng aming array.

Halimbawa, anim sa ikatlong index ng array ay nagmumula sa pagdaragdag ng 1,2, at 3 mula sa aming input array. Sampu sa ikaapat na index ay nagmula sa 1,2,3 at 4. Labinlima ay nagmumula sa pagsasama-sama ng lahat ng mga numero, at iba pa. Ngayon, sa pangalawang linya ng aming output, nai-print namin ang mga denominator ng aming array.

Mula sa aming output, makikita namin na ang lahat ng mga denominator ay eksakto, na nangangahulugan na maaari naming hatiin ang mga ito sa aming gumagalaw na sum array. Ngayon, lumipat sa huling linya ng output. Sa huling linya, makikita natin na ang unang elemento ng ating Moving average Array ay 1. Ang average ng 1 ay 1 kaya tama ang ating unang elemento. Ang average ng 1+2/2 ay magiging 1.5. Makikita natin na ang pangalawang elemento ng ating output array ay 1.5 kaya tama rin ang pangalawang average. Ang average ng 1,2,3 ay magiging 6/3=2. Ginagawa rin nitong tama ang ating output. Kaya, mula sa output, masasabi nating matagumpay nating nakalkula ang moving average ng isang array.

Konklusyon

Sa gabay na ito, natutunan namin ang tungkol sa moving average: ano ang moving average, ano ang mga gamit nito, at kung paano kalkulahin ang moving average. Pinag-aralan namin ito nang detalyado mula sa parehong mga punto sa matematika at programming. Sa NumPy, walang partikular na function o proseso para kalkulahin ang moving average. Ngunit mayroong iba't ibang mga pag-andar sa tulong kung saan maaari nating kalkulahin ang average na paglipat. Gumawa kami ng isang halimbawa upang kalkulahin ang moving average at inilarawan ang bawat hakbang ng aming halimbawa. Ang mga moving average ay isang kapaki-pakinabang na diskarte sa pagtataya ng mga resulta sa hinaharap sa tulong ng kasalukuyang data.