hyb
2025-12-23 7e5db3a16b423ec4a43459805e277979bcac7db5
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
Ë
nñúhÝãóT—ddlmZddlmZmZmZmZmZddlZddl    Z
ddl m Z m ZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZddl m!Z!m"Z"ddl#m$Z$dd    l%m&Z&dd
l'm(Z(dd l)m*Z*dd l+m,Z,dd l-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3ddl4m5Z5ddl6m7Z7m8Z8m9Z9m:Z:ddl;m<Z=m>Z>m Z m?Z?m@Z@ddlAmBZBmCZCmDZDmEZEmFZFddlGmHZHmIZIddlJmKZKddlLmMZMddlNmOZOddlPmQZQddlRmSZTmUZUmVZVddlWmXZXddlYmZZZddl[m\Z\er"ddl]m^Z^m_Z_ddl`maZaddlbmcZcddlmdZdmeZeddlbmfZfdd lgmhZiGd!„d"eMeQ«Zj                d$d#„Zky)%é)Ú annotations)Ú TYPE_CHECKINGÚAnyÚCallableÚLiteralÚoverloadN)ÚlibÚmissing)Úis_supported_dtype)Ú    ArrayLikeÚ    AstypeArgÚAxisIntÚDtypeObjÚ FillnaOptionsÚInterpolateOptionsÚNpDtypeÚPositionalIndexerÚScalarÚ ScalarIndexerÚSelfÚSequenceIndexerÚShapeÚnpt)ÚIS64Úis_platform_windows©ÚAbstractMethodError)Údoc)Úfind_stack_level)Úvalidate_fillna_kwargs)ÚExtensionDtype)Úis_boolÚis_integer_dtypeÚ is_list_likeÚ    is_scalarÚis_string_dtypeÚ pandas_dtype)ÚBaseMaskedDtype)Úarray_equivalentÚis_valid_na_for_dtypeÚisnaÚnotna)Ú
algorithmsÚ    arrayliker
ÚnanopsÚops)Úfactorize_arrayÚisinÚ    map_arrayÚmodeÚtake)Úmasked_accumulationsÚmasked_reductions)Úquantile_with_mask)ÚOpsMixin)Úto_numpy_dtype_inference)ÚExtensionArray)ÚarrayÚensure_wrapped_if_datetimelikeÚ extract_array)Úcheck_array_indexer)Úinvalid_comparison)Ú
hash_array)ÚIteratorÚSequence)ÚSeries©Ú BooleanArray)Ú NumpySorterÚNumpyValueArrayLike©Ú FloatingArray)Úfunctionc󐇗eZdZUdZded<ded<ded<eZeZedgd„«Z        dh                            did
„Z
ed d    d œdjd „«Z ee e j«dkd„««Zdhdld„Zedmd„«Zednd„«Zedod„«Zdpd„Zd d ddœ                                    dqd„Ze e j*«    dr                    dsd„«Zed    dœ                    dtd„«Zd„Zdud„Zdvˆfd„ Zdwd„Zdxd„Zedyd„«Zedxd „«Zdzd!„Zd{d|d#„Zdzd$„Z dzd%„Z!edzd&„«Z"d{d}d'„Z#dzd(„Z$dzd)„Z%dzd*„Z&dzd+„Z'd~d,„Z(d d    e)jTf                            dd-„Z+e e jX«d.„«Z,ed€dd/„«Z-ed€d‚d0„«Z-ed€dƒd1„«Z-d„dƒd2„Z-d3Z.    d…                    d†d4„Z/d5ed6<d‡d7„Z0dˆd8„Z1edvd9„«Z2                d‰d:„Z3d;„Z4e4Z5dŠd<„Z6                d‹d=„Z7d~d>„Z8ed?„«Z9edxd@„«Z:e    d{                    dŒdA„«Z;                                ddB„Z<d    d d"dCœ                            dŽdD„Z=ddE„Z>dzdF„Z?e e j€«    d            d‘dG„«Z@dzdH„ZAe e j„«        d’                            d“dI„«ZBe e j†«    d„            d”dJ„«ZCe e jˆ«d~dK„«ZDd„d•dL„ZEd„d–dM„ZFe e jŽ«dvdN„«ZG                        d—dO„ZHdd    dPœ                    d˜dQ„ZId™dR„ZJdS„ZK        d™dT„ZLdd"d"dUœ                    dšdV„ZMdd"d"dUœ                    dšdW„ZNdd"dXœd›dY„ZOdd"dZd[œ                    dœd\„ZPdd"dZd[œ                    dœd]„ZQdd"dXœd›d^„ZRdd"dXœd›d_„ZSdˆd`„ZTdd"dXœd›da„ZUdd"dXœd›db„ZV                                ddc„ZWdddœ                    džde„ZX                                        dŸdf„ZYˆxZZS) ÚBaseMaskedArrayzf
    Base class for masked arrays (which use _data and _mask to store the data).
 
    numpy based
    rÚ_internal_fill_valueú
np.ndarrayÚ_dataúnpt.NDArray[np.bool_]Ú_maskcóL—tj|«}||_||_|S©N)rMÚ__new__rPrR)ÚclsÚvaluesÚmaskÚresults    úLH:\Change_password\venv_build\Lib\site-packages\pandas/core/arrays/masked.pyÚ _simple_newzBaseMaskedArray._simple_new}s%€ä ×(Ñ(¨Ó-ˆØˆŒ ؈Œ ؈ óFcó0—t|tj«r|jtjk(s t d«‚|j |j k7r td«‚|r |j«}|j«}||_    ||_
y)NzGmask should be boolean numpy array. Use the 'pd.array' function insteadz"values.shape must match mask.shape) Ú
isinstanceÚnpÚndarrayÚdtypeÚbool_Ú    TypeErrorÚshapeÚ
ValueErrorÚcopyrPrR)ÚselfrWrXrfs    rZÚ__init__zBaseMaskedArray.__init__„sx€ô˜4¤§¡Ô,°·±¼r¿x¹xÒ1GÜð2óð ð <‰<˜4Ÿ:™:Ò %ÜÐAÓBÐ Bá Ø—[‘[“]ˆFØ—9‘9“;ˆDàˆŒ
؈
r\N©rarfcóB—|j|||¬«\}}|||«S)Nri)Ú_coerce_to_array)rVÚscalarsrarfrWrXs      rZÚ_from_sequencezBaseMaskedArray._from_sequence—s*€à×+Ñ+¨G¸5ÀtÐ+ÓL‰ ˆÙ6˜4ӠРr\có—tj||j¬«}|j|j«tj
|t ¬«}|||«}t||«r||jk7rtd|›d«‚|S)N©raz5Default 'empty' implementation is invalid for dtype='ú')
r_ÚemptyÚtypeÚfillrNÚonesÚboolr^raÚNotImplementedError)rVrdrarWrXrYs      rZÚ_emptyzBaseMaskedArray._emptyœs{€ô—‘˜% u§z¡zÔ2ˆØ ‰ C×,Ñ,Ô-܏w‰wu¤DÔ)ˆÙV˜TÓ"ˆÜ˜& #Ô&¨%°6·<±<Ò*?Ü%ØGÈÀwÈaÐPóð ðˆ r\có—tSrT)Ústr)rgÚboxeds  rZÚ
_formatterzBaseMaskedArray._formatter©s€äˆ
r\có—t|«‚rTr©rgs rZrazBaseMaskedArray.dtype­s €ä! $Ó'Ð'r\có—yrT©©rgÚitems  rZÚ __getitem__zBaseMaskedArray.__getitem__±ó€à r\có—yrTrr€s  rZr‚zBaseMaskedArray.__getitem__µrƒr\cóڗt||«}|j|}t|«r'|r|jjS|j
|S|j |j
||«SrT)r?rRr"raÚna_valuerPr[)rgrÚnewmasks   rZr‚zBaseMaskedArray.__getitem__¹sb€Ü" 4¨Ó.ˆà—*‘*˜TÑ"ˆÜ 7Ô áØ—z‘z×*Ñ*Ð*Ø—:‘:˜dÑ#Ð #à×Ñ §
¡
¨4Ñ 0°'Ó:Ð:r\T)ÚlimitÚ
limit_arearfcó—|j}|j«rMtj||j¬«}|j
j }|j }|r!|j«}|j«}n||j«}||||¬«|ž|j«sŽ|j }|}    |    j«}
t|    «|    ddd…j«z
dz
} |dk(r)|d|
xxx|d|
zccc|| dzdxxx|| dzdzcccn|dk(r||
dz| xxx||
dz| zccc|r&|j|j |j «S|S|r|j«} | S|} | S)N©Úndim©rˆrXéÿÿÿÿéÚinsideÚoutside) rRÚanyr
Ú get_fill_funcrŒrPÚTrfÚallÚargmaxÚlenr[) rgÚmethodrˆr‰rfrXÚfuncÚnpvaluesÚnew_maskÚneg_maskÚfirstÚlastÚ
new_valuess              rZÚ_pad_or_backfillz BaseMaskedArray._pad_or_backfillÅsv€ðz‰zˆà 8‰8:Ü×(Ñ(¨°d·i±iÔ@ˆDà—z‘z—|‘|ˆHØ—v‘vˆHÙØ#Ÿ=™=›?Ø#Ÿ=™=›?‘ØÐ'Ø—y‘y“{Ù  ¨XÕ 6àÐ%¨d¯h©h¬jØ—v‘vØ ˜5Ø Ÿ™Ó)Ü˜8“} x±°"°¡~×'<Ñ'<Ó'>Ñ>ÀÑBØ Ò)ؘV˜eÓ$¨¨V¨e¨ Ñ4Ó$ؘT A™X˜ZÓ(¨D°¸±°Ð,<Ñ<Ô(Ø 9Ò,ؘU Q™Y¨Ó.°$°u¸q±yÀ4Ð2HÑHÓ.áØ×'Ñ'¨¯
©
°H·J±JÓ?Ð?à áØ!ŸY™Y›[
ðÐð"
ØÐr\có<—t||«\}}|j}tj||t    |««}|j «r·|–tj ||j¬«}|jj}|j}|r |j«}|j«}||||¬«|j|j|j«S|r|j«}    n|dd}    ||    |<|    S|r|j«}    |    S|dd}    |    S)Nr‹r) r rRr
Úcheck_value_sizer—r’r“rŒrPr”rfr[)
rgÚvaluer˜rˆrfrXr™ršr›rŸs
          rZÚfillnazBaseMaskedArray.fillnañs€ô/¨u°fÓ=‰ ˆˆvàz‰zˆä×(Ñ(¨°´c¸$³iÓ@ˆà 8‰8Œ:ØÐ!Ü×,Ñ,¨V¸$¿)¹)ÔDØŸ:™:Ÿ<™<ØŸ6™6ÙØ'Ÿ}™}›HØ'Ÿ}™}›HِX U°Õ:Ø×'Ñ'¨¯
©
°H·J±JÓ?Ð?ñØ!%§¡£‘Jà!%¡a JØ#(
˜4Ñ ð Ðñ    Ø!ŸY™Y›[
ðÐð"¡!˜W
ØÐr\©rfcó—t|«‚rTr)rVrWrarfs    rZrkz BaseMaskedArray._coerce_to_arrays€ô" #Ó&Ð&r\cóx—|jj}|dk(rtj|«ro|S|dk(r,tj|«stj
|«r>|Stj|«s%tj
|«r|j    «r|St d|›d|j›d«‚)zy
        Check if we have a scalar that we can cast losslessly.
 
        Raises
        ------
        TypeError
        ÚbÚfzInvalid value 'z ' for dtype 'rp)raÚkindr    r"Ú
is_integerÚis_floatrc)rgr£rªs   rZÚ_validate_setitem_valuez'BaseMaskedArray._validate_setitem_values•€ðz‰z‰ˆà 3Š;܏{‰{˜5Ô!ؐ à SŠ[܏~‰~˜eÔ$¬¯ © °UÔ(;ؐ ô~‰~˜eÔ$¬¯©°eÔ)<À×AQÑAQÔASؐ ô
˜/¨%¨°-ÀÇ
Á
¸|È1ÐMÓNÐNr\cóZ—t||«}t|«rVt||j«rd|j|<y|j |«}||j |<d|j|<y|j||j¬«\}}||j |<||j|<y)NTFro)r?r%r*rarRr­rPrk)rgÚkeyr£rXs    rZÚ __setitem__zBaseMaskedArray.__setitem__4sœ€Ü! $¨Ó,ˆä UÔ Ü$ U¨D¯J©JÔ7Ø"&—
‘
˜3‘ð
ð×4Ñ4°UÓ;Ø"'—
‘
˜3‘Ø"'—
‘
˜3‘Ø à×+Ñ+¨E¸¿¹Ð+ÓD‰ ˆˆtàˆ
‰
3‰Øˆ
‰
3Šr\cór•—t|«r”||jjur||jjjdk(rYt j |«rDttj|j«|jzj««Stt‰|5|««S)Nr©)r+rar†rPrªr    r¬rur_ÚisnanrRr’ÚsuperÚ __contains__)rgr¯Ú    __class__s  €rZr´zBaseMaskedArray.__contains__Esø€Ü Œ9˜ D§J¡J×$7Ñ$7Ñ7àz‰z×Ñ×$Ñ$¨Ò+´· ± ¸SÔ0AÜœRŸX™X d§j¡jÓ1°T·Z±Z°KÑ?×DÑDÓFÓGÐGä”E‘GÑ(¨Ó-Ó.Ð.r\c#óBK—|jdk(rl|js|jD]}|–—Œy|jj}t |j |j«D]\}}|r|–—Œ |–—Œytt|««D]    }||–—Œ y­w)Nr)    rŒÚ_hasnarPrar†ÚziprRÚranger—)rgÚvalr†Úisna_Úis     rZÚ__iter__zBaseMaskedArray.__iter__Ms“èø€Ø 9‰9˜Š>Ø—;’;ØŸ:™:òCØ“Iñð Ÿ:™:×.Ñ.Ü"% d§j¡j°$·*±*Ó"=ò"‘JE˜3ÙØ&›à!›    ñ    "ô œ3˜t›9Ó%ò Ø˜1‘g“ ñ ùs‚BBcó,—t|j«SrT)r—rPr}s rZÚ__len__zBaseMaskedArray.__len__]s€Ü4—:‘:‹Ðr\có.—|jjSrT)rPrdr}s rZrdzBaseMaskedArray.shape`s€àz‰z×ÑÐr\có.—|jjSrT)rPrŒr}s rZrŒzBaseMaskedArray.ndimds€àz‰z‰Ðr\có–—|jj||«}|jj||«}|j||«SrT)rPÚswapaxesrRr[)rgÚaxis1Úaxis2ÚdatarXs     rZrÃzBaseMaskedArray.swapaxeshsA€Øz‰z×"Ñ" 5¨%Ó0ˆØz‰z×"Ñ" 5¨%Ó0ˆØ×Ñ  dÓ+Ð+r\rcó®—tj|j||¬«}tj|j||¬«}|j    ||«S©N©Úaxis)r_ÚdeleterPrRr[)rgÚlocrÊrÆrXs     rZrËzBaseMaskedArray.deletemsA€Üy‰y˜Ÿ™ S¨tÔ4ˆÜy‰y˜Ÿ™ S¨tÔ4ˆØ×Ñ  dÓ+Ð+r\có–—|jj|i|¤Ž}|jj|i|¤Ž}|j||«SrT)rPÚreshaperRr[©rgÚargsÚkwargsrÆrXs     rZrÎzBaseMaskedArray.reshapersK€Ø!ˆtz‰z×!Ñ! 4Ð2¨6Ñ2ˆØ!ˆtz‰z×!Ñ! 4Ð2¨6Ñ2ˆØ×Ñ  dÓ+Ð+r\có–—|jj|i|¤Ž}|jj|i|¤Ž}t|«||«SrT)rPÚravelrRrrrÏs     rZrÓzBaseMaskedArray.ravelwsK€àˆtz‰z×Ñ Ð0¨Ñ0ˆØˆtz‰z×Ñ Ð0¨Ñ0ˆØŒtD‹z˜$ Ó%Ð%r\cóv—|j|jj|jj«SrT)r[rPr”rRr}s rZr”zBaseMaskedArray.T}s%€à×Ñ §
¡
§ ¡ ¨d¯j©j¯l©lÓ;Ð;r\cóü—|jjdk(r|Stj||«t    j
|j fd|i|¤Ž}|j||jj««S)aó
        Round each value in the array a to the given number of decimals.
 
        Parameters
        ----------
        decimals : int, default 0
            Number of decimal places to round to. If decimals is negative,
            it specifies the number of positions to the left of the decimal point.
        *args, **kwargs
            Additional arguments and keywords have no effect but might be
            accepted for compatibility with NumPy.
 
        Returns
        -------
        NumericArray
            Rounded values of the NumericArray.
 
        See Also
        --------
        numpy.around : Round values of an np.array.
        DataFrame.round : Round values of a DataFrame.
        Series.round : Round values of a Series.
        r¨Údecimals)
rarªÚnvÚvalidate_roundr_ÚroundrPÚ_maybe_mask_resultrRrf)rgrÖrÐrÑrWs     rZrÙzBaseMaskedArray.roundse€ð0 :‰:?‰?˜cÒ !؈KÜ
×ј$ Ô'Ü—‘˜$Ÿ*™*ÑB¨xÐB¸6ÑBˆð×&Ñ& v¨t¯z©z¯©Ó/@ÓAÐAr\cól—|j|j|jj««SrT©r[rPrRrfr}s rZÚ
__invert__zBaseMaskedArray.__invert__¤ó&€Ø×Ñ §¡  ¨T¯Z©Z¯_©_Ó->Ó?Ð?r\cól—|j|j |jj««SrTrÜr}s rZÚ__neg__zBaseMaskedArray.__neg__§rÞr\có"—|j«SrTr¥r}s rZÚ__pos__zBaseMaskedArray.__pos__ªs€Øy‰y‹{Ðr\có|—|jt|j«|jj    ««SrT)r[ÚabsrPrRrfr}s rZÚ__abs__zBaseMaskedArray.__abs__­s(€Ø×Ѥ D§J¡J£°·±·±Ó1BÓCÐCr\có8—tj|t¬«S)Nro)r_ÚasarrayÚobjectr}s rZÚ_values_for_jsonz BaseMaskedArray._values_for_json²s€Üz‰z˜$¤fÔ-Ð-r\cób—|j}t||||«\}}|€t}|r™|tk7r,t|«s!|tj
urt d|›d«‚tj«5tjdt¬«|jj|«}ddd«||j<|Stj«5tjdt¬«|jj||¬«}ddd«|S#1swYŒqxYw#1swYSxYw)aF
        Convert to a NumPy Array.
 
        By default converts to an object-dtype NumPy array. Specify the `dtype` and
        `na_value` keywords to customize the conversion.
 
        Parameters
        ----------
        dtype : dtype, default object
            The numpy dtype to convert to.
        copy : bool, default False
            Whether to ensure that the returned value is a not a view on
            the array. Note that ``copy=False`` does not *ensure* that
            ``to_numpy()`` is no-copy. Rather, ``copy=True`` ensure that
            a copy is made, even if not strictly necessary. This is typically
            only possible when no missing values are present and `dtype`
            is the equivalent numpy dtype.
        na_value : scalar, optional
             Scalar missing value indicator to use in numpy array. Defaults
             to the native missing value indicator of this array (pd.NA).
 
        Returns
        -------
        numpy.ndarray
 
        Examples
        --------
        An object-dtype is the default result
 
        >>> a = pd.array([True, False, pd.NA], dtype="boolean")
        >>> a.to_numpy()
        array([True, False, <NA>], dtype=object)
 
        When no missing values are present, an equivalent dtype can be used.
 
        >>> pd.array([True, False], dtype="boolean").to_numpy(dtype="bool")
        array([ True, False])
        >>> pd.array([1, 2], dtype="Int64").to_numpy("int64")
        array([1, 2])
 
        However, requesting such dtype will raise a ValueError if
        missing values are present and the default missing value :attr:`NA`
        is used.
 
        >>> a = pd.array([True, False, pd.NA], dtype="boolean")
        >>> a
        <BooleanArray>
        [True, False, <NA>]
        Length: 3, dtype: boolean
 
        >>> a.to_numpy(dtype="bool")
        Traceback (most recent call last):
        ...
        ValueError: cannot convert to bool numpy array in presence of missing values
 
        Specify a valid `na_value` instead
 
        >>> a.to_numpy(dtype="bool", na_value=False)
        array([ True, False, False])
        Nzcannot convert to 'zZ'-dtype NumPy array with missing values. Specify an appropriate 'na_value' for this dtype.Úignore©Úcategoryr¥)r·r:rèr&Ú
libmissingÚNAreÚwarningsÚcatch_warningsÚfilterwarningsÚRuntimeWarningrPÚastyperR)rgrarfr†ÚhasnarÆs      rZÚto_numpyzBaseMaskedArray.to_numpyµs€ðD— ‘ ˆÜ2°4¸ÀÈ%ÓP‰ˆˆxØ ˆ=܈Eá àœ’Ü'¨Ô.ؤ
§ ¡ Ñ-ä Ø)¨%¨ð1&ð&óðô ×(Ñ(Ó*ñ 0Ü×'Ñ'¨¼>ÕJØ—z‘z×(Ñ(¨Ó/÷ 0ð (ˆD—‘Ñ ð
ˆ ô×(Ñ(Ó*ñ ;Ü×'Ñ'¨¼>ÕJØ—z‘z×(Ñ(¨°TÐ(Ó:÷ ;ðˆ ÷ 0ð 0ú÷
 ;ðˆ úsÁ17DÃ9D$ÄD!Ä$D.có —|jdkDr|Dcgc]}|j«‘Œc}S|jrdn|jj}|j |t j¬«j«Scc}w)Nr©rar†)rŒÚtolistr·rPrarörîrï)rgÚxras   rZrùzBaseMaskedArray.tolists`€à 9‰9qŠ=Ø(,Ö- 1A—H‘H•JÒ-Ð -ØŸ 𠑍¯©×)9Ñ)9ˆØ}‰} 5´:·=±=ˆ}ÓA×HÑHÓJÐJùò.s”Bcó—yrTr©rgrarfs   rZrôzBaseMaskedArray.astyperƒr\có—yrTrrüs   rZrôzBaseMaskedArray.astyperƒr\có—yrTrrüs   rZrôzBaseMaskedArray.astype!rƒr\cóÈ—t|«}||jk(r|r|j«S|St|t«r®t j «5t jdt¬«|jj|j|¬«}ddd«|jur |jn|jj«}|j«}|||d¬«St|t«r$|j«}|j|||¬«S|j dk(rt"j$}n5|j dk(rt#j&d«}nt(j*}|j d    vr|j,r t/d
«‚|j d k(r|j,r t/d «‚|j1|||¬ «}|S#1swYŒCxYw)Nrërìr¥Frir©ÚMÚNaTÚiuzcannot convert NA to integerr¨z cannot convert float NaN to bool)rar†rf)r'rarfr^r(rðrñròrórPrôÚ numpy_dtyperRÚconstruct_array_typer!rmrªr_ÚnanÚ
datetime64r    Ú
no_defaultr·rerö)rgrarfrÆrXrVÚeaclsr†s        rZrôzBaseMaskedArray.astype%sŽ€Ü˜UÓ#ˆà D—J‘JÒ ÙØ—y‘y“{Ð"؈Kô eœ_Ô -ä×(Ñ(Ó*ñ GÜ×'Ñ'¨¼>ÕJà—z‘z×(Ñ(¨×):Ñ):ÀÐ(ÓF÷ Gð "&¨¯©Ñ!34—:’:¸¿¹¿¹Ó9JˆDØ×,Ñ,Ó.ˆCِt˜T¨Ô.Ð .ä eœ^Ô ,Ø×.Ñ.Ó0ˆEØ×'Ñ'¨°EÀÐ'ÓEÐ Eð
:‰:˜Ò ä—v‘v‰HØ Z‰Z˜3Ò Ü—}‘} UÓ+‰Hä—~‘~ˆHð :‰:˜Ñ  $§+¢+ÜÐ;Ó<Ð <Ø :‰:˜Ò  §¢äÐ?Ó@Ð @à}‰} 5°8À$ˆ}ÓGˆØˆ ÷C Gñ Gús ÁAGÇG!iècóܗ|durR|js"tj|j||¬«St    j
dt t«¬«|€d}|j||¬«S)z|
        the array interface, return my values
        We return an object array here to preserve our scalar values
        FriaSStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed and passing 'copy=False' raises an error when returning a zero-copy NumPy array is not possible. pandas will follow this behavior starting with pandas 3.0.
This conversion to NumPy requires a copy, but 'copy=False' was passed. Consider using 'np.asarray(..)' instead.)Ú
stacklevel)    r·r_r<rPrðÚwarnÚ FutureWarningrrörüs   rZÚ    __array__zBaseMaskedArray.__array__Usd€ð 5‰=Ø—;’;ä—x‘x §
¡
°%¸dÔCÐCä M‰Mð2ô Ü+Ó-õ     ð ˆ<؈D؏}‰} 5¨tˆ}Ó4Ð4r\ztuple[type, ...]Ú_HANDLED_TYPEScó8‡    ‡
—|jdd«}||zD](}t||jtfz«rŒ"tcSt j |||g|¢­i|¤Ž}|tur|Sd|vrt j|||g|¢­i|¤ŽS|dk(r%t j|||g|¢­i|¤Ž}|tur|Stjt|«t¬«Š    g}|D]N}t|t«r+‰    |jzŠ    |j|j«Œ>|j|«ŒPdˆ    fd„ Š
t!||«|i|¤Ž}|j"dkDrt%ˆ
fd„|D««S|dk(r(|jj'«r |j(S|S‰
|«S)    NÚoutrÚreducerocóä•—ddlm}m}m}|jj
dk(r‰j «}|||«S|jj
dvr‰j «}|||«S|jj
dk(rU‰j «}|jtjk(r|jtj«}|||«Stj|‰<|S)Nr)rFrJÚ IntegerArrayr¨rr©) Úpandas.core.arraysrFrJrrarªrfr_Úfloat16rôÚfloat32r)rúrFrJrÚmrXs     €rZÚ reconstructz4BaseMaskedArray.__array_ufunc__.<locals>.reconstruct™s½ø€÷ ñ ð w‰w|‰|˜sÒ"Ø—I‘I“KÙ# A qÓ)Ð)Ø—‘—‘ Ñ%Ø—I‘I“KÙ# A qÓ)Ð)Ø—‘—‘ Ò$Ø—I‘I“KØ—7‘7œbŸj™jÒ(🙤§¡Ó,AÙ$ Q¨Ó*Ð*äŸ&™&$‘؈Hr\rc3ó.•K—|] }‰|«–—Œy­wrTr)Ú.0rúrs  €rZú    <genexpr>z2BaseMaskedArray.__array_ufunc__.<locals>.<genexpr>¶søèø€Ò8¨A™ QŸÑ8ùsƒ)rúrO)Úgetr^rrMÚNotImplementedr.Ú!maybe_dispatch_ufunc_to_dunder_opÚdispatch_ufunc_with_outÚdispatch_reduction_ufuncr_Úzerosr—rurRÚappendrPÚgetattrÚnoutÚtupler’Ú    _na_value) rgÚufuncr˜ÚinputsrÑrrúrYÚinputs2rXrs          @@rZÚ__array_ufunc__zBaseMaskedArray.__array_ufunc__rsµù€ðj‰j˜ Ó#ˆà˜#‘ò    &ˆAܘa ×!4Ñ!4¼Ð7IÑ!IÕJÜ%Ò%ð    &ô
×<Ñ<Ø %˜ð
Ø"(ò
Ø,2ñ
ˆð œÑ '؈Mà F‰?ä×4Ñ4ؐe˜VðØ&,òØ06ñð ð XÒ Ü×7Ñ7ؐe˜VðØ&,òØ06ñˆFðœ^Ñ+ؐ äx‰xœ˜D›    ¬Ô.ˆØˆØò    "ˆAܘ!œ_Ô-ؘŸ™‘Ø—‘˜qŸw™wÕ'à—‘˜qÕ!ð     "õ    ð4(”˜ Ó'¨Ð;°FÑ;ˆØ :‰:˜Š>äÓ8°Ô8Ó8Ð 8Ø xÒ àz‰z~‰~ÔØ—~‘~Ð%؈Má˜vÓ&Ð &r\cóZ—ddl}|j|j|j|¬«S)z6
        Convert myself into a pyarrow Array.
        rN)rXrr)Úpyarrowr<rPrR)rgrrÚpas   rZÚ__arrow_array__zBaseMaskedArray.__arrow_array__¿s$€ó    àx‰x˜Ÿ
™
¨¯©¸$ˆxÓ?Ð?r\có6—|jj«SrT)rRr’r}s rZr·zBaseMaskedArray._hasnaÇs€ðz‰z~‰~ÓÐr\cóò—|€e|jj«}|tjur|dz}|St    |«r%t |«t |«k(r|t |«z}|S|j|z}|S)NT)rRrfrîrïr$r—r+)rgrXÚothers   rZÚ_propagate_maskzBaseMaskedArray._propagate_maskÐsz€ð ˆ<Ø—:‘:—?‘?Ó$ˆDØœ
Ÿ ™ Ñ%à˜d‘{ðˆ ô ˜eÔ$¬¨U«´s¸4³yÒ)@Øœd 5›kÑ)ð
ˆ ð—:‘: Ñ$ˆDðˆ r\cóà—|j}d}t|d«s:t|«r/t|«t|«k(rt    |«}t |d¬«}t |t«r|j|j}}nJt|«r?t |t«stj|«}|jdkDr td«‚tj |t|«f«}tj"|«}t%|«}|dvr%t |tj&«r t)|«}|j+||«}|t,j.ur£tj0|j«}|j2j4dk(r.|dvrtd    |›d
«‚|d vrd }nd }|j7|«}nd|vr‰|j2j4dk7rp|j7tj8«}nP|j2j4dvr|dvr|}tj:d¬«5||j|«}ddd«|dk(r€tj<|jdk(|jzd|«}|tj<|dk(|zd|«}n±|t,j.urŸtj<|dk(d|«}n„|dk(r|tj<|dk(|zd|«}n,|t,j.urtj<|dk(d|«}tj<|jdk(|jzd|«}|j?|«S#1swYŒ%xYw)NraT)Ú extract_numpyrú(can only perform ops with 1-d structures>ÚpowÚrpowr¨>r6r7ÚtruedivÚfloordivÚrtruedivÚ    rfloordivz
operator 'z!' not implemented for bool dtypes>ÚmodÚrmodÚint8rur8r©r)r9r<rë)r•r6Frr7) Ú__name__Úhasattrr$r—Úpd_arrayr>r^rMrPrRr;r_rçrŒrvr0Úmaybe_prepare_scalar_for_opÚ get_array_opr=rbrur2rîrïÚ    ones_likerarªrôÚfloat64ÚerrstateÚwhererÚ)    rgr1ÚopÚop_nameÚomaskÚpd_oprXrYras             rZÚ _arith_methodzBaseMaskedArray._arith_methodàsò€Ø—+‘+ˆØˆô˜˜wÔ'ܘUÔ#ܐE“
œc $›iÒ'ô˜U“OˆEÜ! %°tÔ<ˆEä eœ_Ô -Ø Ÿ;™;¨¯ © 5‰Eä ˜%Ô  Ü˜e¤^Ô4ÜŸ
™
 5Ó)Øz‰z˜AŠ~Ü)Ð*TÓUÐUô×/Ñ/°¼¸D»    °|ÓDˆÜ× Ñ  Ó$ˆÜ.¨uÓ5ˆà oÑ %¬*°U¼B¿H¹HÔ*Eô˜“KˆEà×#Ñ# E¨5Ó1ˆà ”J—M‘MÑ !Ü—\‘\ $§*¡*Ó-ˆF؏z‰z‰ #Ò%Øðñô.Ø$ W IÐ-NÐOóðð˜oÑ-Ø"‘Eà"EØŸ™ uÓ-‘ؘgÑ%¨$¯*©*¯/©/¸SÒ*@ð Ÿ™¤r§z¡zÓ2‘ðz‰z‰ $Ñ&¨7Ð6IÑ+Iðä—‘ Ô*ñ 2Ù˜tŸz™z¨5Ó1÷ 2ð eÒ ä—8‘8˜TŸZ™Z¨1™_°·±° Ñ;¸UÀDÓIˆDàРܗx‘x ¨!¡°¨vÑ 5°u¸dÓC‘ØœjŸm™mÑ+Ü—x‘x ¨¡
¨E°4Ó8‘à ˜Ò àРܗx‘x ¨!¡°¨vÑ 5°u¸dÓC‘ØœjŸm™mÑ+Ü—x‘x ¨¡
¨E°4Ó8ä—8‘8˜TŸZ™Z¨1™_°·±° Ñ;¸UÀDÓIˆDà×&Ñ& v¨tÓ4Ð4÷+ 2ñ 2ús È,M#Í#M-có|—ddlm}d}t|t«r|j|j
}}n\t |«rQtj|«}|jdkDr td«‚t|«t|«k7r td«‚|tjurWtj|jj d¬«}tj"|jj d¬«}nžt%j&«5t%j(dd    t*«t%j(dd    t,«t/|jd
|j0›d
«}||«}|t2urt5|j||«}ddd«|j7||«}||d ¬ «S#1swYŒ&xYw) NrrErr5zLengths must match to comparerurorëÚ elementwiseÚ__Fr¥)rrFr^rMrPrRr$r_rçrŒrvr—rerîrïr!rdrtrðrñròr ÚDeprecationWarningr#r?rr@r2)rgr1rHrFrXrYr˜s       rZÚ _cmp_methodzBaseMaskedArray._cmp_method?s_€Ý3àˆä eœ_Ô -ØŸ+™+ u§{¡{4‰Eä ˜%Ô  Ü—J‘J˜uÓ%ˆE؏z‰z˜AŠ~Ü)Ð*TÓUÐUܐ4‹yœC ›JÒ&Ü Ð!@ÓAÐAà ”J—M‘MÑ !ô
—X‘X˜dŸj™j×.Ñ.°fÔ=ˆFÜ—7‘7˜4Ÿ:™:×+Ñ+°6Ô:‰Dä×(Ñ(Ó*ñ Gô ×'Ñ'¨°-ÄÔOÜ×'Ñ'¨°-ÔASÔTÜ  §¡¨r°"·+±+°¸bÐ-AÓBÙ ›àœ^Ñ+Ü/°·
±
¸EÀ2ÓFF÷ Gð×#Ñ# D¨%Ó0ˆÙ˜F D¨uÔ5Ð5÷ Gð Gús Ä BF2Æ2F;có —t|t«r)|\}}|j||«|j||«fS|jjdk(rddlm}|||d¬«S|jjdk(rddlm}|||d¬«Stj|jd«rdt|j«rOdd    lm }|jjd
«||<t||«s|j||j¬ «S|S|jjd vrdd lm}|||d¬«Stj ||<|S)z
        Parameters
        ----------
        result : array-like or tuple[array-like]
        mask : array-like bool
        r©rrIFr¥r¨rEr)ÚTimedeltaArrayrror©r)r^r%rÚrarªrrJrFr    Ú is_np_dtyper rSrrr[rr_r)    rgrYrXÚdivr<rJrFrSrs             rZrÚz"BaseMaskedArray._maybe_mask_resultgs%€ô fœeÔ $à‰HˆCà×'Ñ'¨¨TÓ2Ø×'Ñ'¨¨TÓ2ðð ð
<‰<× Ñ  Ò #Ý 8á  ¨°EÔ:Ð :à \‰\× Ñ  #Ò %Ý 7á ¨°5Ô9Ð 9ä _‰_˜VŸ\™\¨3Ô /Ô4FÀvÇ|Á|Ô4Tå 9à!Ÿ<™<×,Ñ,¨UÓ3ˆF4‰Lä˜f nÔ5Ø%×1Ñ1°&ÀÇ Á Ð1ÓMÐMàˆMà \‰\× Ñ  $Ñ &Ý 7á ¨°5Ô9Ð 9ôŸ6™6ˆF4‰L؈Mr\có6—|jj«SrT)rRrfr}s rZr+zBaseMaskedArray.isna–s€Øz‰z‰Ó Ð r\có.—|jjSrTrør}s rZr&zBaseMaskedArray._na_value™s€àz‰z×"Ñ"Ð"r\có\—|jj|jjzSrT)rPÚnbytesrRr}s rZrZzBaseMaskedArray.nbytess!€àz‰z× Ñ  4§:¡:×#4Ñ#4Ñ4Ð4r\cóä—tj|Dcgc]}|j‘Œc}|¬«}tj|Dcgc]}|j‘Œc}|¬«}|||«Scc}wcc}wrÈ)r_Ú concatenaterPrR)rVÚ    to_concatrÊrúrÆrXs      rZÚ_concat_same_typez!BaseMaskedArray._concat_same_type¡sV€ô ~‰~°    Ö:¨1˜qŸw›wÒ:ÀÔFˆÜ~‰~°    Ö:¨1˜qŸw›wÒ:ÀÔFˆÙ4˜‹Ðùò;ùÚ:s ”A(ÁA-có˜—t|j|||¬«}t|jj«||j «<|S)N)ÚencodingÚhash_keyÚ
categorize)rArPÚhashrar†r+)rgr`rarbÚ hashed_arrays     rZÚ_hash_pandas_objectz#BaseMaskedArray._hash_pandas_object«sB€ô"Ø J‰J °HÈô
ˆ ô%)¨¯©×)<Ñ)<Ó$=ˆ T—Y‘Y“[Ñ!ØÐr\)Ú
allow_fillÚ
fill_valuerÊcó—t|«r |jn|}t|j||||¬«}t|j|d||¬«}|r-t |«r"t j|«dk(}|||<||z }|j||«S)N)rgrfrÊTrŽ)    r+rNr5rPrRr,r_rçr[)    rgÚindexerrfrgrÊÚdata_fill_valuerYrXÚ    fill_masks             rZr5zBaseMaskedArray.take´s–€ô8<¸JÔ7G˜$×3Ò3ÈZˆÜØ J‰JØ Ø&Ø!Øô 
ˆôØ J‰J˜¨D¸ZÈdô
ˆñ œ% 
Ô+ÜŸ
™
 7Ó+¨rÑ1ˆIØ *ˆF9Ñ Ø˜)Ñ#ˆDà×Ñ ¨Ó-Ð-r\cób‡—ddlm}tj|«}t    ‰j
|«}‰j r8|jtk(xrtˆfd„|D««}||‰j<tj‰j
jt¬«}|||d¬«S)NrrEc3óN•K—|]}|‰jju–—Œy­wrTrø)rrºrgs  €rZrz'BaseMaskedArray.isin.<locals>.<genexpr>ás'øèø€ò@Ø/2t—z‘z×*Ñ*Ô*ñ@ùsƒ"%roFr¥)rrFr_rçr2rPr·rarèr’rRr!rdru)rgrWrFÚ
values_arrrYÚvalues_have_NArXs`      rZr2zBaseMaskedArray.isinØs‘ø€Ý3ô—Z‘Z Ó'ˆ
ܐd—j‘j *Ó-ˆà ;Š;Ø'×-Ñ-´Ñ7ò¼Có@Ø6@ô@ó=ˆNð "0ˆF4—:‘:Ñ äx‰x˜Ÿ
™
×(Ñ(´Ô5ˆÙ˜F D¨uÔ5Ð5r\cóŽ—|jj«}|jj«}|j||«SrT)rPrfrRr[)rgrÆrXs   rZrfzBaseMaskedArray.copyìs5€Øz‰z‰Ó ˆØz‰z‰Ó ˆØ×Ñ  dÓ+Ð+r\cób—|j}|j}tj|||¬«S)N)ÚkeeprX)rPrRÚalgosÚ
duplicated)rgrrrWrXs    rZrtzBaseMaskedArray.duplicatedñs+€ð—‘ˆØz‰zˆÜ×Ñ ¨T¸Ô=Ð=r\có€—tj|j|j«\}}|j    ||«S)z‚
        Compute the BaseMaskedArray of unique values.
 
        Returns
        -------
        uniques : BaseMaskedArray
        )rsÚunique_with_maskrPrRr[)rgÚuniquesrXs   rZÚuniquezBaseMaskedArray.uniqueùs5€ô×.Ñ.¨t¯z©z¸4¿:¹:ÓF‰ ˆØ×Ñ ¨Ó.Ð.r\có¶—|jr td«‚t|t«r|j    t
«}|j j|||¬«S)NzOsearchsorted requires array to be sorted, which is impossible with NAs present.)ÚsideÚsorter)r·rer^r;rôrèrPÚ searchsorted)rgr£rzr{s    rZr|zBaseMaskedArray.searchsortedsS€ð ;Š;Üð$óð ô eœ^Ô ,Ø—L‘L¤Ó(ˆEàz‰z×&Ñ& u°4ÀÐ&ÓGÐGr\có„—|j}|j}t|d|¬«\}}|j|jjk(sJ|j|jf«‚|j «}|s|s t |«}nt |«dz}tj|t¬«}|sw|ru|j«}    |    dk(rtjd«}
n|d|    j«dz}
|||
k\xxdz cc<|
||dk(<tj||
d«}d||
<|j||«} || fS)NT)Úuse_na_sentinelrXrrorrŽ)rPrRr1rarr’r—r_r!rur–ÚintpÚmaxÚinsertr[) rgr~ÚarrrXÚcodesrwÚhas_naÚsizeÚ uniques_maskÚna_indexÚna_codeÚ
uniques_eas             rZÚ    factorizezBaseMaskedArray.factorizes-€ð
j‰jˆØz‰zˆô)¨¸dÈÔN‰ˆˆwð}‰} §
¡
× 6Ñ 6Ò6ÐS¸¿¹ÈÏ
É
Ð8SÓSÐ6à—‘“ˆÙ ¡&ܐw“<‰Dôw“< !Ñ#ˆDÜ—x‘x ¬DÔ1ˆ Ù¡6Ø—{‘{“}ˆHà˜1Š}ÜŸ'™' !›*‘à      Ð*×.Ñ.Ó0°1Ñ4Ø %˜7Ñ"Ó # qÑ (Ó #Ø!(ˆE%˜2‘+Ñ ä—i‘i ¨°!Ó4ˆGØ$(ˆL˜Ñ !Ø×%Ñ% g¨|Ó<ˆ
àjРРr\có—|jSrT)rPr}s rZÚ_values_for_argsortz#BaseMaskedArray._values_for_argsort:s €àz‰zÐr\cóˆ—ddlm}m}ddlm}t j |j||j¬«\}}}tjt|«ftj¬«}|j«}    |dkDrd|d<|||    «}
||jj«||««} ||
| dd    ¬
«S) aA
        Returns a Series containing counts of each unique value.
 
        Parameters
        ----------
        dropna : bool, default True
            Don't include counts of missing values.
 
        Returns
        -------
        counts : Series
 
        See Also
        --------
        Series.value_counts
        r)ÚIndexrDrT©ÚdropnarXroTrŽÚcountF)ÚindexÚnamerf)ÚpandasrŽrDÚ pandas.arraysrrsÚvalue_counts_arraylikerPrRr_r!r—rbrfrar) rgrrŽrDrÚkeysÚ value_countsÚ
na_counterÚ
mask_indexrXr‚r’s             rZr˜zBaseMaskedArray.value_counts>s±€÷"    
õ    /ä).×)EÑ)EØ J‰J˜v¨D¯J©Jô*
Ñ&ˆˆl˜Jô—X‘Xœs <Ó0Ð2¼"¿(¹(ÔCˆ
؏‰Ó ˆà ˜Š>Ø!ˆJr‰Ná˜<¨Ó.ˆÙØ -ˆDJ‰J× +Ñ +Ó -ؐjó ó
ˆñ
c ¨W¸5ÔAÐAr\có>—|rRt|j||j¬«}tj|j
tj ¬«}n%t|j||j¬«\}}t|«||«}||j«S)Nrro)    r4rPrRr_r!rdrbrrÚargsort)rgrrYÚres_masks    rZÚ_modezBaseMaskedArray._modefsr€Ù ܘ$Ÿ*™*¨V¸$¿*¹*ÔEˆFÜ—x‘x § ¡ ´B·H±HÔ=‰Hä# D§J¡J°vÀDÇJÁJÔOÑ ˆFHØ”d“˜F HÓ-ˆØf—n‘nÓ&Ñ'Ð'r\cóB—t|«t|«k7ry|j|jk7rytj|j|j«sy|j
|j}|j
|j}t ||dd¬«S)NFT)Ú
strict_nanÚ dtype_equal)rrrar_Ú array_equalrRrPr))rgr1ÚleftÚrights    rZÚequalszBaseMaskedArray.equalsos|€ä ‹:œ˜e›Ò $ØØ ;‰;˜$Ÿ*™*Ò $Øô~‰~˜dŸj™j¨%¯+©+Ô6Øàz‰z˜4Ÿ:™:˜+Ñ&ˆØ— ‘ ˜UŸ[™[˜LÑ)ˆÜ  e¸È$ÔOÐOr\có€—t|j|jtj||¬«}|j
rÉ|j dk(rt‚|j«j«rptj|jt¬«}t|j«rtj|j|jj ¬«}nKtj|jt¬«}n%tj|jt¬«}|j#||¬«S)z½
        Dispatch to quantile_with_mask, needed because we do not have
        _from_factorized.
 
        Notes
        -----
        We assume that all impacted cases are 1D-only.
        )rXrgÚqsÚ interpolationéro©rX)r8rPrRr_rr·rŒrvr+r•rtrdrur#rar!rrÚ)rgr§r¨ÚresÚout_masks     rZÚ    _quantilezBaseMaskedArray._quantiles׀ô!Ø J‰JØ—‘ô—v‘vØØ'ô
ˆð ;Š;ðy‰y˜AŠ~ô*Ð)؏y‰y‹{‰Ô ÜŸ7™7 3§9¡9´DÔ9ä# D§J¡JÔ/ôŸ(™( 3§9¡9°D·J±J×4JÑ4JÔK‘CäŸ8™8 C§I¡I´TÔ:‘ä—x‘x §    ¡    ´Ô6ˆHØ×&Ñ& s°Ð&Ó:Ð:r\)ÚskipnaÚkeepdimsc óÀ—|dvrt||«d d|i|¤Ž}nJ|j}|j}ttd|›«}|j    dd«}    ||f|    ||dœ|¤Ž}|r]t |«r|j |dd¬«S|jd    «}tjd    t¬
«}|j||«St |«rtjS|S) N>    r•r’r€ÚminÚstdÚsumÚvarÚmeanÚprodr®rrÊ)rÊr®rXr)r)r“rÊÚ    mask_sizerror)r#rPrRr/Úpopr+Ú_wrap_na_resultrÎr_r!rurÚrîrï)
rgr“r®r¯rÑrYrÆrXrHrÊs
          rZÚ_reducezBaseMaskedArray._reduce«s߀ð ÐTÑ TØ(”W˜T 4Ó(ÑA°ÐA¸&ÑA‰Fð—:‘:ˆDØ—:‘:ˆDÜœ 3 t f Ó.ˆBØ—:‘:˜f dÓ+ˆDÙ˜ÐL 4°¸TÑLÀVÑLˆFá ܐFŒ|Ø×+Ñ+°¸AÈÐ+ÓNÐNàŸ™¨Ó*Ü—x‘x ¬Ô.Ø×.Ñ.¨v°tÓ<Ð<ä Œ<Ü—=‘=Ð  àˆMr\cóԗt|tj«rM|r|jj    |¬«}n|jj |¬«}|j ||«S|SrÈ)r^r_r`rRr•r’rÚ)rgr“rYr®rÊrXs      rZÚ_wrap_reduction_resultz&BaseMaskedArray._wrap_reduction_resultÅsS€Ü fœbŸj™jÔ )Ùà—z‘z—~‘~¨4~Ó0‘à—z‘z—~‘~¨4~Ó0à×*Ñ*¨6°4Ó8Ð 8؈ r\có¸—tj|t¬«}|jdk(rdnd}|dvr|}n{|dvs|jjdk(r!|jj
j }n=t«xst }|rdnd    }|rd
nd }    |||    |d œ|jj}tjd g|¬«}
|j|
|¬«S)NroÚFloat32rrE)rµÚmedianr´r²ÚskewÚkurt)r±r€éÚint32Úint64Úuint32Úuint64)r¨r¼Úur©rrª) r_rtruraÚitemsizerr“rrrªr<rÚ) rgr“rÊr·rXÚ
float_dtypÚnp_dtypeÚis_windows_or_32bitÚint_dtypÚ    uint_dtypr£s            rZr¹zBaseMaskedArray._wrap_na_resultÐsʀ܏w‰wy¬Ô-ˆà"&§*¡*°    Ò"9‘Y¸yˆ
Ø ÐCÑ CØ!‰HØ ^Ñ # t§z¡z×':Ñ':¸aÒ'?Ø—z‘z×-Ñ-×2Ñ2‰Hä"5Ó"7Ò"C¼t¸8Ð Ù"5‘w¸7ˆHÙ$7™¸XˆIØ%¨H¸9È:ÑVØ—
‘
—‘ñˆHô—‘˜!˜ HÔ-ˆØ×&Ñ& u°4Ð&Ó8Ð8r\cóԗ|dk(rOt|tj«r5|j|tj|j
t ¬««S|j||||¬«S)Nrro©r®rÊ)r^r_r`rÚr!rdrur¼)rgr“rYr®Ú    min_countrÊs      rZÚ _wrap_min_count_reduction_resultz0BaseMaskedArray._wrap_min_count_reduction_resultãsU€ð ˜Š>œj¨´·±Ô<Ø×*Ñ*¨6´2·8±8¸F¿L¹LÔPTÔ3UÓVÐ VØ×*Ñ*¨4°ÀÈTÐ*ÓRÐRr\©r®rÐrÊc ó¶—tjd|«tj|j|j
|||¬«}|j d||||¬«S)NrrÒr³)r×Ú validate_sumr7r³rPrRrÑ©rgr®rÐrÊrÑrYs      rZr³zBaseMaskedArray.sumês^€ô     ‰˜˜FÔ#ä"×&Ñ&Ø J‰JØ J‰JØØØô 
ˆð×4Ñ4Ø 6 &°IÀDð5ó
ð    
r\c ó¶—tjd|«tj|j|j
|||¬«}|j d||||¬«S)NrrÒr¶)r×Ú validate_prodr7r¶rPrRrÑrÕs      rZr¶zBaseMaskedArray.prodÿs`€ô     ×ј˜VÔ$ä"×'Ñ'Ø J‰JØ J‰JØØØô 
ˆð×4Ñ4Ø F 6°YÀTð5ó
ð    
r\rÏc ó²—tjd|«tj|j|j
||¬«}|j d|||¬«S)NrrÏrµ)r×Ú validate_meanr7rµrPrRr¼©rgr®rÊrÑrYs     rZrµzBaseMaskedArray.meansR€Ü
×ј˜VÔ$Ü"×'Ñ'Ø J‰JØ J‰JØØô    
ˆð ×*Ñ*¨6°6À&ÈtÐ*ÓTÐTr\r©r®rÊÚddofc ó¸—tjd|d¬«tj|j|j
|||¬«}|j d|||¬«S)Nrr´©ÚfnamerÛrÏ)r×Úvalidate_stat_ddof_funcr7r´rPrRr¼©rgr®rÊrÜrÑrYs      rZr´zBaseMaskedArray.varóY€ô     ×"Ñ" 2 v°UÕ;Ü"×&Ñ&Ø J‰JØ J‰JØØØô 
ˆð×*Ñ*¨5°&ÀÈdÐ*ÓSÐSr\c ó¸—tjd|d¬«tj|j|j
|||¬«}|j d|||¬«S)Nrr²rÞrÛrÏ)r×ràr7r²rPrRr¼rás      rZr²zBaseMaskedArray.std+râr\c ó²—tjd|«tj|j|j
||¬«}|j d|||¬«S)NrrÏr±)r×Ú validate_minr7r±rPrRr¼rÚs     rZr±zBaseMaskedArray.min8óP€Ü
‰˜˜FÔ#Ü"×&Ñ&Ø J‰JØ J‰JØØô    
ˆð ×*Ñ*¨5°&ÀÈdÐ*ÓSÐSr\c ó²—tjd|«tj|j|j
||¬«}|j d|||¬«S)NrrÏr€)r×Ú validate_maxr7r€rPrRr¼rÚs     rZr€zBaseMaskedArray.maxBrær\có:—t|j«||¬«S)N)Ú    na_action)r3rö)rgÚmapperrês   rZÚmapzBaseMaskedArray.mapLs€Ü˜Ÿ™›¨&¸IÔFÐFr\c ód—tjd|«|jj«}t    j
||j |j«|j«}|r|S|s(t|«dk(s|j j«s|S|jjS)aY
        Return whether any element is truthy.
 
        Returns False unless there is at least one element that is truthy.
        By default, NAs are skipped. If ``skipna=False`` is specified and
        missing values are present, similar :ref:`Kleene logic <boolean.kleene>`
        is used as for logical operations.
 
        .. versionchanged:: 1.4.0
 
        Parameters
        ----------
        skipna : bool, default True
            Exclude NA values. If the entire array is NA and `skipna` is
            True, then the result will be False, as for an empty array.
            If `skipna` is False, the result will still be True if there is
            at least one element that is truthy, otherwise NA will be returned
            if there are NA's present.
        axis : int, optional, default 0
        **kwargs : any, default None
            Additional keywords have no effect but might be accepted for
            compatibility with NumPy.
 
        Returns
        -------
        bool or :attr:`pandas.NA`
 
        See Also
        --------
        numpy.any : Numpy version of this method.
        BaseMaskedArray.all : Return whether all elements are truthy.
 
        Examples
        --------
        The result indicates whether any element is truthy (and by default
        skips NAs):
 
        >>> pd.array([True, False, True]).any()
        True
        >>> pd.array([True, False, pd.NA]).any()
        True
        >>> pd.array([False, False, pd.NA]).any()
        False
        >>> pd.array([], dtype="boolean").any()
        False
        >>> pd.array([pd.NA], dtype="boolean").any()
        False
        >>> pd.array([pd.NA], dtype="Float64").any()
        False
 
        With ``skipna=False``, the result can be NA if this is logically
        required (whether ``pd.NA`` is True or False influences the result):
 
        >>> pd.array([True, False, pd.NA]).any(skipna=False)
        True
        >>> pd.array([1, 0, pd.NA]).any(skipna=False)
        True
        >>> pd.array([False, False, pd.NA]).any(skipna=False)
        <NA>
        >>> pd.array([0, 0, pd.NA]).any(skipna=False)
        <NA>
        rr) r×Ú validate_anyrPrfr_ÚputmaskrRÚ _falsey_valuer’r—rar†©rgr®rÊrÑrWrYs      rZr’zBaseMaskedArray.anyOs€ô~     ‰˜˜FÔ#à—‘—‘Ó"ˆô      
‰
6˜4Ÿ:™: t×'9Ñ'9Ô:Ø—‘“ˆÙ ؈M᜘T› aš¨t¯z©z¯~©~Ô/?ؐ à—z‘z×*Ñ*Ð*r\c óh—tjd|«|jj«}t    j
||j |j«|j|¬«}|r|S|r(t|«dk(s|j j«s|S|jjS)aL
        Return whether all elements are truthy.
 
        Returns True unless there is at least one element that is falsey.
        By default, NAs are skipped. If ``skipna=False`` is specified and
        missing values are present, similar :ref:`Kleene logic <boolean.kleene>`
        is used as for logical operations.
 
        .. versionchanged:: 1.4.0
 
        Parameters
        ----------
        skipna : bool, default True
            Exclude NA values. If the entire array is NA and `skipna` is
            True, then the result will be True, as for an empty array.
            If `skipna` is False, the result will still be False if there is
            at least one element that is falsey, otherwise NA will be returned
            if there are NA's present.
        axis : int, optional, default 0
        **kwargs : any, default None
            Additional keywords have no effect but might be accepted for
            compatibility with NumPy.
 
        Returns
        -------
        bool or :attr:`pandas.NA`
 
        See Also
        --------
        numpy.all : Numpy version of this method.
        BooleanArray.any : Return whether any element is truthy.
 
        Examples
        --------
        The result indicates whether all elements are truthy (and by default
        skips NAs):
 
        >>> pd.array([True, True, pd.NA]).all()
        True
        >>> pd.array([1, 1, pd.NA]).all()
        True
        >>> pd.array([True, False, pd.NA]).all()
        False
        >>> pd.array([], dtype="boolean").all()
        True
        >>> pd.array([pd.NA], dtype="boolean").all()
        True
        >>> pd.array([pd.NA], dtype="Float64").all()
        True
 
        With ``skipna=False``, the result can be NA if this is logically
        required (whether ``pd.NA`` is True or False influences the result):
 
        >>> pd.array([True, True, pd.NA]).all(skipna=False)
        <NA>
        >>> pd.array([1, 1, pd.NA]).all(skipna=False)
        <NA>
        >>> pd.array([True, False, pd.NA]).all(skipna=False)
        False
        >>> pd.array([1, 0, pd.NA]).all(skipna=False)
        False
        rrÉr) r×Ú validate_allrPrfr_rïrRÚ _truthy_valuer•r—r’rar†rñs      rZr•zBaseMaskedArray.all s†€ô~     ‰˜˜FÔ#à—‘—‘Ó"ˆô      
‰
6˜4Ÿ:™: t×'9Ñ'9Ô:Ø—‘ Ó&ˆá ؈MáœS ›Y¨!š^°4·:±:·>±>Ô3Cؐ à—z‘z×*Ñ*Ð*r\c ó‚—|jjdk(rP|r5|jj«}    |jj«}
n|j}    |j}
nh|jjdvr8d}|jj d«}    |jj«}
nt d|j›«‚tj|    f|d|||||
dœ|¤Ž|s|S|jjdk(rt|«j|    |
«Sddl m } | j|    |
«S)    z2
        See NDFrame.interpolate.__doc__.
        r©rTÚf8z)interpolate is not implemented for dtype=r)r˜rÊr’rˆÚlimit_directionr‰rXrI) rarªrPrfrRrôrvr
Úinterpolate_2d_inplacerrr[rrJ) rgr˜rÊr’rˆr÷r‰rfrÑrÆrXrJs             rZÚ interpolatezBaseMaskedArray.interpolateòs€ð  :‰:?‰?˜cÒ !ÙØ—z‘z—‘Ó(Ø—z‘z—‘Ó(‘à—z‘zØ—z‘z‘Ø Z‰Z_‰_ Ñ $؈DØ—:‘:×$Ñ$ TÓ*ˆDØ—:‘:—?‘?Ó$‰Dä%Ø;¸D¿J¹J¸<ÐHóð ô    ×&Ñ&Ø ð
    
àØØØØ+Ø!Øñ
    
ðò
    
ñ؈KØ :‰:?‰?˜cÒ !ܘ“:×)Ñ)¨$°Ó5Ð 5å 8à,=×,Ñ,¨T°4Ó8Ð 8r\)r®c ó”—|j}|j}tt|«}|||fd|i|¤Ž\}}|j    ||«S)Nr®)rPrRr#r6r[)rgr“r®rÑrÆrXrHs       rZÚ _accumulatezBaseMaskedArray._accumulate&sP€ðz‰zˆØz‰zˆä Ô)¨4Ó 0ˆÙ˜˜dÑ<¨6Ð<°VÑ<‰
ˆˆdà×Ñ  dÓ+Ð+r\c     óF—ddlm}|j|«}||||¬«}    |j}
|    jdk7r|
j «} nt j|t¬«} |dk(r|jd«dvrd    | dd|    j|jf||||
| d
œ|¤Ž} |    jd k(rH|    jj|    jd «} t j| | d f«j} |    jd vr| S|j!| | «S)Nr)ÚWrappedCythonOp)ÚhowrªÚhas_dropped_naÚ    aggregateroÚrankÚ    na_option)ÚtopÚbottomF)rÐÚngroupsÚcomp_idsrXÚ result_maskÚohlcr)ÚidxminÚidxmax)Úpandas.core.groupby.opsrýÚget_kind_from_howrRrªrfr_r!rurÚ_cython_op_ndim_compatrPrþÚ _cython_arityÚtiler”rÚ)rgrþrÿrÐrÚidsrÑrýrªrHrXrÚ
res_valuesÚaritys              rZÚ _groupby_opzBaseMaskedArray._groupby_op4s€õ    <à×0Ñ0°Ó5ˆÙ  ¨4ÀÔ Oˆðz‰zˆØ 7‰7kÒ !ØŸ)™)›+‰KäŸ(™( 7´$Ô7ˆKà &Š=˜VŸZ™Z¨ Ó4Ð8IÑIØ"ˆK™ˆNà.R×.Ñ.Ø J‰Jð
àØØØØ#ñ 
ðñ
ˆ
ð 6‰6VÒ Ø×$Ñ$×(Ñ(¨¯©°Ó3ˆEÜŸ'™' +°°q¨zÓ:×<Ñ<ˆKà 6‰6Ð)Ñ )àÐ ð×*Ñ*¨:°{ÓCÐ Cr\)rWrOrXrQÚreturnr)F)rWrOrXrQrfrurÚNone)rfrurr)rdrrar!)rzrurzCallable[[Any], str | None])rr()rrrr)rrrr)rrrz
Self | Any)
r˜rrˆú
int | Noner‰z#Literal['inside', 'outside'] | Nonerfrurr)NNNT)rˆrrfrurr)rarrfrurztuple[np.ndarray, np.ndarray])rr)rru)rrB)rÚint)rr)rr)r)rÊrrr)rÖr)rrO)raznpt.DTypeLike | Nonerfrur†rèrrO).)raz npt.DTypeLikerfrurrO)rar!rfrurr;)rar rfrurr )T)NN)razNpDtype | Nonerfz bool | NonerrO)r'znp.ufuncr˜ryrT)rXznpt.NDArray[np.bool_] | NonerrQ)rrF)rYz*np.ndarray | tuple[np.ndarray, np.ndarray]rXrO)r]zSequence[Self]rÊrrr)r`ryraryrbrurznpt.NDArray[np.uint64])rfrurgz Scalar | NonerÊrrr)rWr rrF)r)rrzLiteral['first', 'last', False]rrQ)r£N)r£z$NumpyValueArrayLike | ExtensionArrayrzzLiteral['left', 'right']r{zNumpySorter | Nonerznpt.NDArray[np.intp] | np.intp)r~rurz!tuple[np.ndarray, ExtensionArray])rrurrD)rrurr)r§znpt.NDArray[np.float64]r¨ryrrM)r“ryr®rur¯ru)r“ry)r®rurÐrrÊúAxisInt | None)r®rurÊr)r®rurÊrrÜr)r˜rrÊrrfrurrJ)r“ryr®rurrM)
rþryrÿrurÐrrrrznpt.NDArray[np.intp])[r?Ú
__module__Ú __qualname__Ú__doc__Ú__annotations__rrôrðÚ classmethodr[rhrmrr;rwr{Úpropertyrarr‚r r¤rkr­r°r´r½r¿rdrŒrÃrËrÎrÓr”rÙrÝràrârårér    rrörùrôÚ__array_priority__r r*r.r·r2rLÚ_logical_methodrQrÚr+r&rZr^rer5r2rfrtrxr|rŠrŒr˜ržr¥r­rºr¼r¹rÑr³r¶rµr´r²r±r€rìr’r•rùrûrÚ __classcell__)rµs@rZrMrMlsø…ñð!Ó à ÓØ  Ó ð€MØ€MàòóððMRðØ ðØ(=ðØEIðà     óð&Ø.2Àô!óð!ðوנ   Ñ    Óò    ó óð    ôðò(óð(ðò óð ðò óð ó
;ð !Ø:>Øñ *ðð*ðð    *ð
8ð *ð ð *ð
ó*ñX    ˆ×    Ñ    ÓàNRðØ.8ðØGKðà     òó ððBà6;ñ'Ø'ð'Ø/3ð'à    &ò'óð'ò
Oó6õ"/óó ðò óð ðòóðó,ô
,ó
,ó
&ð ò<óð<ôBóF@ó@óóDó
.ð
'+ØØŸ>™>ð    [à#ð[ðð[ðð    [ð
 
ó [ñz    ˆ×    Ñ    ÓñKó ðKð ó óð ðó óð ðó óð ô,ð\ÐðAEð5Ø#ð5Ø2=ð5à    ó5ð6%Ó$óK'óZ@ðò óð ðØ0ðà    óò [5ðz$€Oó&6ðP-Ø@ð-ØHRó-ó^!ðñ#óð#ðò5óð5ðððà!ðððð
ò    óððØðØ*-ðØ;?ðà    óð!Ø$(Øñ  .ðð     .ð
"ð  .ð ð  .ð
ó .óH6ó(,ñ
    ˆ×    "Ñ    "Ó#à6=ð>Ø3ð>à    ò>ó$ð>ó    /ñ    ˆ×    $Ñ    $Ó%ð*0Ø%)ð    Hà3ðHð'ðHð#ð    Hð
 
(ò Hó&ðHñ     ˆ×    !Ñ    !Ó"ð!%ð"!àð"!ð
+ò"!ó#ð"!ñH    ˆ×    +Ñ    +Ó,òó-ðô&BôP(ñ    ˆ×    Ñ    Óò Pó ð Pð';Ø)ð';Ø:=ð';à    ó';ðZ,0À%ñØðØ$(ðØ;?óó4    ò9ð&SØóSðØØ ñ 
ðð
ðð    
ð
ó 
ð0ØØ ñ 
ðð
ðð    
ð
ó 
ð*&*À!õUð!%¸QÈAñ TØð TØ,:ð TØFIó Tð!%¸QÈAñ TØð TØ,:ð TØFIó Tð%)ÀõTð%)ÀõTóGð%)ÀõO+ðb%)ÀõP+ðd29ð#ð29ðð    29ðð29ð
ó29ðj,0ñ    ,Øð    ,Ø$(ð    ,à    ó    ,ð-Dðð-Dðð    -Dð
ð -Dð ð -Dð"÷-Dr\rMc ó¢—t|«}|dj}|Dcgc]}|jjdd«‘Œ }}t    j
|dt    j t|«t|d«fd|j¬«¬«}|Dcgc]}|jjdd«‘Œ }}t    j
|dt    j|t¬«¬«}|j«}g}t|jd«D]+}    ||dd…|    f|dd…|    f¬    «}
|j|
«Œ-|Scc}wcc}w)
zÖTranspose masked arrays in a list, but faster.
 
    Input should be a list of 1-dim masked arrays of equal length and all have the
    same dtype. The caller is responsible for ensuring validity of input data.
    rrrŽÚF)Úorderra)rÊrroNrª)ÚlistrarPrÎr_r\rqr—rrRÚ
empty_likerurr¹rdr") Ú masked_arraysrar‚rWÚtransposed_valuesÚmasksÚtransposed_masksÚarr_typeÚtransposed_arraysr¼Útransposed_arrs            rZÚ#transpose_homogeneous_masked_arraysr.dsI€ô˜Ó'€MØ ˜!Ñ × "Ñ "€Eà2?Ö @¨3ˆci‰i×Ñ  2Õ&Ð @€FÐ @ÜŸ™ØØ Ü H‰HÜ Ó ¤ ]°1Ñ%5Ó!6Ð 7ØØ×#Ñ#ô
ôÐð2?Ö ?¨#ˆSY‰Y× Ñ ˜q "Õ %Ð ?€EÐ ?Ü—~‘~Ø Aœ2Ÿ=™=Ð):Ä$ÔGôÐð×)Ñ)Ó+€HØ/1ÐÜ Ð$×*Ñ*¨1Ñ-Ó .ò1ˆÙ!Ð"3²A°q°DÑ"9Ð@PÒQRÐTUÐQUÑ@VÔWˆØ× Ñ  Õ0ð1ð Ðùò-Aùò @s Ÿ#EÂ#E )r'zSequence[BaseMaskedArray]rzlist[BaseMaskedArray])lÚ
__future__rÚtypingrrrrrrðÚnumpyr_Ú pandas._libsr    r
rîÚpandas._libs.tslibsr Úpandas._typingr r rrrrrrrrrrrrÚ pandas.compatrrÚ pandas.errorsrÚpandas.util._decoratorsrÚpandas.util._exceptionsrÚpandas.util._validatorsr Úpandas.core.dtypes.baser!Úpandas.core.dtypes.commonr"r#r$r%r&r'Úpandas.core.dtypes.dtypesr(Úpandas.core.dtypes.missingr)r*r+r,Ú pandas.corer-rsr.r/r0Úpandas.core.algorithmsr1r2r3r4r5Úpandas.core.array_algosr6r7Ú pandas.core.array_algos.quantiler8Úpandas.core.arrayliker9Úpandas.core.arrays._utilsr:Úpandas.core.arrays.baser;Úpandas.core.constructionr<rAr=r>Úpandas.core.indexersr?Úpandas.core.opsr@Úpandas.core.util.hashingrAÚcollections.abcrBrCr”rDrrFrGrHrJÚpandas.compat.numpyrKr×rMr.rr\rZú<module>rKséðÝ"÷õóã÷õ3÷÷÷÷÷ õ.Ý'Ý4Ý:å2÷÷õ6÷ó÷õ÷õ÷õ@Ý*Ý>Ý2÷ñõ
5Ý.Ý/á÷õÝ/÷õ1å.ôuDh ôuDðp/!Ø,ð!àô!r\