zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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Úã@shddlmZddlZddlmZmZddlZddlm    Z    ddl
m Z ej ddddddd    œd
d „ƒZ dS) é)Ú annotationsN)Ú TYPE_CHECKINGÚCallable)ÚScalar)Úimport_optional_dependency)ÚmaxsizezCallable[..., Scalar]Úbool)ÚfuncÚnopythonÚnogilÚparallelcsDtrddl‰ntdƒ‰ˆj|||ddddddœ‡‡fdd    „ ƒ}|S)
aÓ
    Generate a Numba function that loops over the columns 2D object and applies
    a 1D numba kernel over each column.
 
    Parameters
    ----------
    func : function
        aggregation function to be applied to each column
    nopython : bool
        nopython to be passed into numba.jit
    nogil : bool
        nogil to be passed into numba.jit
    parallel : bool
        parallel to be passed into numba.jit
 
    Returns
    -------
    Numba function
    rNÚnumba)r
r r z
np.ndarrayÚint)ÚvaluesÚstartÚendÚ min_periodscsdtjt|ƒ|jdftjd}ˆ |jd¡D]0}ˆ|dd…|f|||f|žŽ|dd…|f<q.|S)Né)Zdtype)ÚnpÚemptyÚlenÚshapeÚfloat64Zprange)rrrrÚargsÚresultÚi©r    r ©úRd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/_numba/executor.pyÚ column_looper.s.z1generate_shared_aggregator.<locals>.column_looper)rr rZjit)r    r
r r rrrrÚgenerate_shared_aggregators 
 r )Ú
__future__rÚ    functoolsÚtypingrrÚnumpyrZpandas._typingrZpandas.compat._optionalrÚ    lru_cacher rrrrÚ<module>s