1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
U
¬ý°d=ã
@sªdZddlmZddlZddlZddlmZejdddddd    dd    dd    dd
d œd d „ƒZ    ejdddddd    dd    dddœdd„ƒZ
ejdddddddd    ddœdd„ƒZ dS)z
Numba 1D mean kernels that can be shared by
* Dataframe / Series
* groupby
* rolling / expanding
 
Mirrors pandas/_libs/window/aggregation.pyx
é)Ú annotationsN)Úis_monotonic_increasingTF)ZnopythonZnogilÚparallelÚfloatÚintz)tuple[int, float, int, float, int, float])ÚvalÚnobsÚsum_xÚneg_ctÚ compensationÚnum_consecutive_same_valueÚ
prev_valueÚreturnc    Cslt |¡s\|d7}||}||}|||}|}|dkrB|d7}||krT|d7}nd}|}||||||fS©Nér©ÚnpÚisnan)    rrr    r
r r r ÚyÚt©rúWd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/_numba/kernels/mean_.pyÚadd_means
 
 
rztuple[int, float, int, float])rrr    r
r rcCsPt |¡sD|d8}| |}||}|||}|}|dkrD|d8}||||fSrr)rrr    r
r rrrrrÚ remove_mean-s
 
 rz
np.ndarray)ÚvaluesÚstartÚendÚ min_periodsrc
Cs¬t|ƒ}d}d}d}d}d}    t|ƒo*t|ƒ}
tj|tjd} t|ƒD]`} || } || }| dksf|
s¬|| }d}t| |ƒD],}||}t|||||||ƒ\}}}}}}q|nxt|| d| ƒD]$}||}t|||||    ƒ\}}}}    q¾t|| d|ƒD],}||}t|||||||ƒ\}}}}}}qö||kr„|dkr„||}||krP|}n2|dkrj|dkrjd}n||krŠ|dkrŠd}ntj}|| | <|
sDd}d}d}d}    qD| S)Nrg)Zdtyper)    ÚlenrrÚemptyÚfloat64ÚrangerrÚnan)rrrrÚNrr    r
Zcompensation_addZcompensation_removeZis_monotonic_increasing_boundsÚoutputÚiÚsÚer r ÚjrÚresultrrrÚ sliding_mean<s¢ÿþ ùùúÿùùú
r*) Ú__doc__Ú
__future__rZnumbaÚnumpyrZ!pandas.core._numba.kernels.sharedrZjitrrr*rrrrÚ<module>s