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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
U
¬ý°d®ã@sžddlmZddlZddlmZmZmZddlm    Z    ddl
m Z m Z ddddd    œd
d „Z d d ddd dœdd„Zd d dddddœdd„Zd dd ddœdd„ZdS)é)Ú annotationsN)Ú    ArrayLikeÚScalarÚnpt)Únp_percentile_argname)ÚisnaÚna_value_for_dtyperznpt.NDArray[np.float64]Ústr)ÚvaluesÚqsÚ interpolationÚreturncCsBt|tjƒr2t|jdd}t|ƒ}t|||||ƒS| ||¡SdS)a
    Compute the quantiles of the given values for each quantile in `qs`.
 
    Parameters
    ----------
    values : np.ndarray or ExtensionArray
    qs : np.ndarray[float64]
    interpolation : str
 
    Returns
    -------
    np.ndarray or ExtensionArray
    F)ÚcompatN)Ú
isinstanceÚnpZndarrayrÚdtyperÚquantile_with_maskZ    _quantile)r
r r Ú
fill_valueÚmask©rúWd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/array_algos/quantile.pyÚquantile_compats
 rz
np.ndarrayznpt.NDArray[np.bool_])r
rr r r c    CsÊ|j|jkst‚|jdkrFt |¡}t |¡}t|||||ƒ}|dS|jdksTt‚|jddk}|rœt |gt|ƒ¡}t |t|ƒ¡     t|ƒt|ƒ¡}n*t
||d|||d}tj|dd}|j }|S)a
    Compute the quantiles of the given values for each quantile in `qs`.
 
    Parameters
    ----------
    values : np.ndarray
        For ExtensionArray, this is _values_for_factorize()[0]
    mask : np.ndarray[bool]
        mask = isna(values)
        For ExtensionArray, this is computed before calling _value_for_factorize
    fill_value : Scalar
        The value to interpret fill NA entries with
        For ExtensionArray, this is _values_for_factorize()[1]
    qs : np.ndarray[float64]
    interpolation : str
        Type of interpolation
 
    Returns
    -------
    np.ndarray
 
    Notes
    -----
    Assumes values is already 2D.  For ExtensionArray this means np.atleast_2d
    has been called on _values_for_factorize()[0]
 
    Quantile is computed along axis=1.
    érégY@)Úna_valuerr F©Úcopy) ÚshapeÚAssertionErrorÚndimrZ
atleast_2drÚarrayÚlenÚrepeatZreshapeÚ_nanpercentileÚT)    r
rrr r Z
res_valuesZis_emptyZflatÚresultrrrr*s*#
 
 
"ûrrzScalar | np.ndarray)r
rr rr r cCs:||}t|ƒdkr&t t|ƒ|¡Stj||ft|iŽS)aà
    Wrapper for np.percentile that skips missing values, specialized to
    1-dimensional case.
 
    Parameters
    ----------
    values : array over which to find quantiles
    mask : ndarray[bool]
        locations in values that should be considered missing
    qs : np.ndarray[float64] of quantile indices to find
    na_value : scalar
        value to return for empty or all-null values
    interpolation : str
 
    Returns
    -------
    quantiles : scalar or array
    r)r!rÚfullÚ
percentiler)r
rr rr rrrÚ_nanpercentile_1dms
 þúr()r
r rr cs|jjdkr6t| d¡ˆˆ d¡|ˆd}| |j¡S| ¡rä|j|jksNt‚‡‡‡fdd„tt    |ƒt    |ƒƒDƒ}|jjdkr”t
j ||jddj }nLt
j |dd    j }|j|jkrà|  ¡sà||j|jdd    k  ¡rà|j|jdd    }|St
j|ˆfd
d itˆi—ŽSd S) aÊ
    Wrapper for np.percentile that skips missing values.
 
    Parameters
    ----------
    values : np.ndarray[ndim=2]  over which to find quantiles
    qs : np.ndarray[float64] of quantile indices to find
    na_value : scalar
        value to return for empty or all-null values
    mask : np.ndarray[bool]
        locations in values that should be considered missing
    interpolation : str
 
    Returns
    -------
    quantiles : scalar or array
    )ÚmÚMÚi8)r rrr c    s"g|]\}}t||ˆˆˆd‘qS))r )r()Ú.0Úvalr)©r rr rrÚ
<listcomp>Äsÿz"_nanpercentile.<locals>.<listcomp>ÚfF)rrrZaxisrN)rÚkindr#ÚviewZastypeÚanyrrÚzipÚlistrr r$Úallr'r)r
r rrr r%rr.rr#™sB û
þ 
ÿþýþýùr#)Ú
__future__rÚnumpyrZpandas._typingrrrZpandas.compat.numpyrZpandas.core.dtypes.missingrrrrr(r#rrrrÚ<module>s  C,