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
Ë
KñúhÆlã    óX—dZddlZddlZddlmZej jjZejjZ
gd¢Z gd¢Z dd„Z d„ZGd„dej«Zd    „ZeZ            dd „Zdddddd
ddej(f    d „Zd „Zd„Z        dej0dœd„Zdd„Zy)a,:mod:`numpy.ma..mrecords`
 
Defines the equivalent of :class:`numpy.recarrays` for masked arrays,
where fields can be accessed as attributes.
Note that :class:`numpy.ma.MaskedArray` already supports structured datatypes
and the masking of individual fields.
 
.. moduleauthor:: Pierre Gerard-Marchant
 
éN)Ú MaskedRecordsÚ    mrecarrayÚ
fromarraysÚ fromrecordsÚ fromtextfileÚaddfield)Ú_dataÚ_maskÚ
_fieldmaskÚdtypecó6—t|«}t|«Dcgc]}d|›‘Œ    }}|€|}nat|ttf«r|}n0t|t
«r|j d«}ntd|›«‚t|«}||kr|||dz }g}t|||j«D]X\}}}    |tvr4|    dtvr|j||    df«Œ1|j|    «ŒC|j||    df«ŒZtj|«Scc}w)zÓ
    Checks that field names ``descr`` are not reserved keywords.
 
    If this is the case, a default 'f%i' is substituted.  If the argument
    `names` is not None, updates the field names to valid names.
 
    ÚfNú,zillegal input names ré)ÚlenÚrangeÚ
isinstanceÚtupleÚlistÚstrÚsplitÚ    NameErrorÚzipÚdescrÚreserved_fieldsÚappendÚnpr )
rÚnamesÚndescrÚiÚ default_namesÚ    new_namesÚnnamesÚnÚdÚts
          úDH:\Change_password\venv_build\Lib\site-packages\numpy/ma/mrecords.pyÚ _checknamesr(#s€ô‹Z€FÜ&+¨F£mÖ4 q˜˜’WÐ4€MÐ4Ø €}Ø!‰    ä eœe¤T˜]Ô +؉IÜ ˜œsÔ #ØŸ ™  CÓ(‰IäÐ2°5°)Ð<Ó=Ð =ܐY“ˆØ FŠ?Ø ˜ v wÐ/Ñ /ˆIØ €Fܘ M°5·;±;Ó?ò%‰    ˆˆAˆqØ ”Ñ Ø‰t”Ñ&Ø— ‘ ˜q ! A¡$˜iÕ(à— ‘ ˜aÕ à M‰M˜1˜a ™d˜)Õ $ð%ô 8‰8FÓ Ðùò-5s™ Dcó֗|jjDcgc]}|df‘Œ}}tj|j|¬«}t dgt |«z«|_|Scc}w)Nz|b1©r F)r rrÚemptyÚshaperrÚflat)Úselfr$ÚmdescrÚfdmasks    r'Ú_get_fieldmaskr1EsX€Ø"&§*¡*×"2Ñ"2Ö 3˜Qˆq%ŠjÐ 3€FÐ 3Ü X‰Xd—j‘j¨Ô /€Fܘ˜¤# f£+Ñ-Ó.€F„KØ €Mùò4s™ A&có̗eZdZdZdddddddddej
ddddfd„Zd„Zed„«Z    ed    „«Z
d
„Z d „Z d „Z d „Zd„Zd„Zd„Zdd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd„Zy)raž
 
    Attributes
    ----------
    _data : recarray
        Underlying data, as a record array.
    _mask : boolean array
        Mask of the records. A record is masked when all its fields are
        masked.
    _fieldmask : boolean recarray
        Record array of booleans, setting the mask of each individual field
        of each record.
    _fill_value : record
        Filling values for each field.
 
    NrFTc óp—tjj||||||||||    |
¬« }tj|j
«}| tj ustj| «s!|stdgt|«z«|_
|Stj| |¬«} | j|jk7r|j| j}}|dk(r!tj| |j«} nA||k(r!tj| |j«} nd|›d}tj|«‚|s|j!| «d|_|S| j
|k(r| }n;tj| Dcgc]}t|gt|«z«‘Œc}|¬«}||_
|Scc}w)    N)    r ÚbufÚoffsetÚstridesÚformatsrÚtitlesÚ    byteorderÚalignedF)Úcopyrz+Mask and data not compatible: data size is z, mask size is {nm}.Tr*)rÚrecarrayÚ__new__ÚmaÚmake_mask_descrr ÚnomaskÚsizerrr
Úarrayr,ÚresizeÚreshapeÚMAErrorÚ __setmask__Ú _sharedmask)Úclsr,r r4r5r6r7rr8r9r:ÚmaskÚ    hard_maskÚ
fill_valueÚ    keep_maskr;Úoptionsr.ÚmdtypeÚndÚnmÚmsgr
Úms                        r'r=zMaskedRecords.__new__^s€ô{‰{×"Ñ" 3¨°UÀÈFØ+2¸GÈ5Ø*0¸IØ+2ð#ó5ˆô
×#Ñ# D§J¡JÓ/ˆØ ”2—9‘9Ñ ¤B§G¡G¨D¤MÙÜ" E 7¬S°«[Ñ#8Ó9”
ð.ˆ ô+—8‘8˜D tÔ,ˆD؏z‰z˜TŸZ™ZÒ'Ø ŸI™I t§y¡yRØ˜’7ÜŸ9™9 T¨4¯:©:Ó6‘Dؘ2’XÜŸ:™: d¨D¯J©JÓ7‘DàHÈÈðM1ð1CäŸ*™* S›/Ð)ÙØ× Ñ  Ô&Ø#'Ô ðˆ ð —:‘: Ò'Ø ‘EäŸH™HÈÖ%MÀ1¤e¨Q¨C´#°f³+Ñ,=Õ&>Ò%MØ+1ô3Eà"”
؈ ùò&NsÆF3c ó–—t|dd«}|€Üt|dtj«}tjj |d«}|tjur"tj |j|¬«}nmtj|«}tj|Dcgc]}t|gt|«z«‘Œc}|¬«jtj«}|j}|j|¬«|j!|«|dtjk(rtj|d<yycc}w)Nr
r r*©r
Ú
_baseclass)Úgetattrr>r@rÚndarrayÚ__getattribute__Úmake_mask_noner,r?rBrrÚviewr<Ú__dict__ÚupdateÚ _update_from)r.Úobjr
ÚobjmaskÚ_dtyper/rRÚ_dicts        r'Ú__array_finalize__z MaskedRecords.__array_finalize__†sÿ€ä˜˜W dÓ+ˆØ ˆ=ܘc 7¬B¯I©IÓ6ˆGÜ—Z‘Z×0Ñ0°°wÓ?ˆFØœ"Ÿ)™)Ñ#Ü×)Ñ)¨$¯*©*¸FÔC‘ä×+Ñ+¨FÓ3ÜŸ™ÀGÖ!L¸q¤%¨¨¬c°&«kÑ(9Õ":Ò!LØ%+ô-ß-1©T´"·+±+Ó->ðð— ‘ ˆØ  ‰ ˜5ˆ Ô!Ø ×ј#ÔØ Ñ ¤"§*¡*Ò ,Ü"$§+¡+ˆE,Ò ð -ùò "MsÂ'Ecó^—tjj|tj«S)z2
        Returns the data as a recarray.
 
        )rrWrZr<©r.s r'r    zMaskedRecords._data™s€ô z‰z‰˜t¤R§[¡[Ó1Ð1ócó—|jS)z!
        Alias to mask.
 
        rTrds r'r zMaskedRecords._fieldmask¡s€ð z‰zÐrecón—|jrt|j«St|j«S)z%
        Returns the length
 
        )Úndimrr    r rds r'Ú__len__zMaskedRecords.__len__©s'€ð 9Š9ܐt—z‘z“?Ð "ä4—:‘:‹Ðrecóö—    tj||«S#t$rYnwxYwtjj|d«j
}    ||dd}n&#t tf$r}td|›«|‚d}~wwxYwtjj|d«}tjj||d«}|j|Ž}|jj td«‚d}|jdd«}    |    U    |    |}    n#t$rYnwxYwt|    j«}
|    jt |
r|
fnd    f«j#«}|j$s|r||jt&j(«}tj|_d
|_|    |_|jd d«} | $    | ||_|S#t2$r d|_Y|SwxYw|S|j5«}|S) Nr éúrecord array has no attribute r[rUz4MaskedRecords is currently limited tosimple records.Fr
©TÚ _fill_value)ÚobjectrXÚAttributeErrorrrWÚfieldsÚ    TypeErrorÚKeyErrorrZÚgetfieldr rÚNotImplementedErrorÚgetÚ
IndexErrorrÚboolÚanyr,r>Ú MaskedArrayrUÚ_isfieldr
rnÚ
ValueErrorÚitem) r.ÚattrÚ    fielddictÚresÚeÚ
_localdictr    r^Ú    hasmaskedr
Útp_lenrns             r'rXzMaskedRecords.__getattribute__´sü€ð    Ü×*Ñ*¨4°Ó6Ð 6øÜò    á ð    úô—J‘J×/Ñ/°°gÓ>×EÑEˆ    ð    @ؘD‘/ " 1Ð%‰CøÜœ8Ð$ò    @Ü Ø0°°Ð7ó9Ø>?ð @ûð    @úô—Z‘Z×0Ñ0°°zÓBˆ
Ü—
‘
—‘  j°Ñ&>Ó?ˆØˆen‰n˜cÐ"ˆØ 9‰9?‰?Ð &Ü%ð'8ó9ð 9ðˆ    Ø—‘˜w¨Ó-ˆØ Ð ð Ø˜d™ ‘øÜò áð úô˜Ÿ™Ó%ˆFØŸ
™
¤D¹¨F©9ÀBÐ#HÓI×MÑMÓOˆIØ IŠI™Ø—(‘(œ2Ÿ>™>Ó*ˆCÜŸZ™ZˆCŒN؈CŒL؈CŒIà$Ÿ.™.¨¸Ó=ˆKØÐ&ð+Ø&1°$Ñ&7C”Oð
ˆ
øô    "ò+Ø&*C•Oðˆ
ð    +úðˆ
ð—(‘(“*ˆC؈
sH‚˜    $£$ÁAÁA>Á*A9Á9A>Ä DÄ    DÄDÇ
GÇG$Ç#G$có²—|dvr|j|«ytj|d«}||v}    tj|||«}tj
j|d«j xsi}||vr|S|r    tj||«    ||dd}|tjur|d}
|
    |d|} n|} d    } n*tj|«} tj|«} t    j
j|d
«j | g|¢­Ž} |d j#|| «| S#t$r|cYSwxYw#t$r_tj
j|d«j xsi}tj
j|d«xsi}||vs||vs‚YŒwxYw#ttf$r}    td|›«|    ‚d}    ~    wwxYw) z<
        Sets the attribute attr to the value val.
 
        )rIÚ    fieldmaskNr[r Ú_optinforkrlrnTr    r
)rFrorXÚ __setattr__rrWrqÚ __delattr__Ú    Exceptionrrrsrpr>ÚmaskedÚfilledÚ getmaskarrayÚsetfieldÚ __setitem__)r.r~Úvalr‚ÚnewattrÚretrÚoptinfor€rrnÚdvalÚmvalr^s              r'rˆzMaskedRecords.__setattr__ãsê€ð Ð(Ñ (Ø × Ñ ˜SÔ !Ø ä×,Ñ,¨T°:Ó>ˆ
à˜jÐ(ˆð    ä×$Ñ$ T¨4°Ó5ˆCôŸ
™
×3Ñ3°D¸'ÓB×IÑIÒOÈRˆIà˜9Ñ$ؐ
ÙðÜ×&Ñ& t¨TÔ2ð    @ؘD‘/ " 1Ð%ˆCð
”"—)‘)Ñ Ø$ ]Ñ3ˆKØÐ&Ø! -Ñ0°Ñ6‘àØ‰Dä—9‘9˜S“>ˆDÜ—?‘? 3Ó'ˆD܏j‰j×)Ñ)¨$°Ó8×AÑAÀ$ÐMÈÒMˆØ7Ñ×'Ñ'¨¨dÔ3؈
øô+!òØ’Jðûô#ò    äŸ
™
×3Ñ3°D¸'ÓB×IÑIÒOÈRˆIÜ—j‘j×1Ñ1°$¸
ÓCÒIÀrˆGؘIÑ%¨°©Øúð     ûô,œ8Ð$ò    @Ü Ø0°°Ð7ó9Ø>?ð @ûð    @ús<²EÂD7ÂF3Ä7 EÅEÅA$F0Æ/F0Æ3GÇGÇGcój—|j}tjj|d«}tjj    ||d«}t |t «rn||j    tj«}|||_    d|_
|d}|
|||_ |js|jrtjS|Stj||«j    t«}tj||«j    tj «|_    |S)z„
        Returns all the fields sharing the same fieldname base.
 
        The fieldname base is either `_data` or `_mask`.
 
        r
rUTrn)r[rrWrXrZrrr>rzr
rGrnrhr‹Úasarrayrr<)r.Úindxr‚r
r    r^Úfvals       r'Ú __getitem__zMaskedRecords.__getitem__sð€ð—]‘]ˆ
Ü—
‘
×+Ñ+¨D°'Ó:ˆÜ—
‘
—‘  j°Ñ&>Ó?ˆä dœCÔ  ð
˜‘+×"Ñ"¤2§>¡>Ó2ˆCؘd™ ˆCŒIØ"ˆCŒOؘmÑ,ˆDØÐØ"& t¡*”à—8’8 §    ¢    Ü—y‘yР؈Jôj‰j˜˜t™Ó%×*Ñ*¬9Ó5ˆÜ—J‘J˜u T™{Ó+×0Ñ0´·±Ó=ˆŒ    Øˆ
recó¬—tjj|||«t|t«r#tj
|«|j |<yy)z2
        Sets the given record to value.
 
        N)r>rzrrrrr
)r.r˜Úvalues   r'rzMaskedRecords.__setitem__;s@€ô
     ‰×"Ñ" 4¨¨uÔ5Ü dœCÔ  Ü!Ÿ™¨uÓ5ˆDJ‰JtÒ ð !rec óh—|jdkDr‚t|jjDcgc]}t    ||«‘Œc}ŽDcgc].}ddj |Dcgc] }t |«‘Œc}«›d‘Œ0}}}ddj |«›dSt|jjDcgc]}t    ||«‘Œc}«Dcgc]+}dj |Dcgc] }t |«‘Œc}«›‘Œ-}}}ddj |«›dScc}wcc}wcc}}wcc}wcc}wcc}}w)z8
        Calculates the string representation.
 
        rú(rú)ú[z, ú])rArr rrVÚjoinr)r.rÚsr Úmstrs     r'Ú__str__zMaskedRecords.__str__Ds%€ð
9‰9qŠ=ä ¸T¿Z¹Z×=MÑ=MÖ"N¸¤7¨4°Õ#3Ò"NÐO÷QØð˜Ÿ™°!Ö!4¨Q¤# a¥&Ò!4Ó5Ð6°aÒ8ðQˆDñQàt—y‘y “Ð' qÐ)Ð )ô!¸D¿J¹J×<LÑ<LÖ!M°q¤'¨$°Õ"2Ò!MÓN÷PØð—x‘x°Ö 3¨A¤ Q¥Ò 3Ó4Ð5Ñ6ðPˆDñPàt—y‘y “Ð' qÐ)Ð )ùò #Oùò"5ùóQùò
"Nùò!4ùóPs;­DÁDÁDÁ. DÂ/D$à D.àD)Ã2
D.ÄDÄ)D.c    ój—|jj}dtd„|D««dz›d}|jjDcgc]}||t||«fz‘Œ}}|j    dd«|j |d|j fzdg«td    j|««Scc}w)
z6
        Calculates the repr representation.
 
        ú%c3ó2K—|]}t|«–—Œy­w©N)r)Ú.0r$s  r'ú    <genexpr>z)MaskedRecords.__repr__.<locals>.<genexpr>Xsèø€Ò- ”c˜!—fÑ-ùs‚ézs : %srzmasked_records(z    fill_valuez              )ú
)    r rÚmaxrVÚinsertÚextendrKrr¢)r.Ú_namesÚfmtrÚreprstrs     r'Ú__repr__zMaskedRecords.__repr__Rs®€ð
—‘×!Ñ!ˆØ”#Ñ- fÔ-Ó-°Ñ1Ð2°&Ð9ˆØ8<¿
¹
×8HÑ8HÖI°13˜!œW T¨1Ó-Ð.Ó.ÐIˆÐI؏‰qÐ+Ô,؏‰˜Ð/°·±ÐAÑAØ)ð+ô    ,ä4—9‘9˜WÓ%Ó&Ð&ùò    JsÁB0cóþ—|€C|€ tjj|«}n¡tjj||«}n€|€]    t|tj«r!tjj||«}n tjj||«}n!tjj|||«}t|dtj«tjuritj|j
«}|j j|tj«|_|j"|j _|S#t$r—tj
|«}|j €K|jjd}|j«j||«}|j|«n tjj||«}d|_ YŒ5wxYw)z3
        Returns a view of the mrecarray.
 
        Nrr
)rrWrZÚ
issubclassrrr rqÚ    __class__Ú    __bases__Ú    __array__r]rnrVr>r@r?r
r,)r.r ÚtypeÚoutputÚbasetyperNs      r'rZzMaskedRecords.view_sj€ð ˆ=؈|ÜŸ™Ÿ™¨Ó.‘䟙Ÿ™¨¨tÓ4‘à ˆ\ð *ܘe¤R§Z¡ZÔ0ÜŸZ™ZŸ_™_¨T°5Ó9‘FäŸZ™ZŸ_™_¨T°5Ó9Føô—Z‘Z—_‘_ T¨5°$Ó7ˆFä F˜G¤R§Y¡YÓ /´r·y±yÑ @Ü×'Ñ'¨¯ © Ó5ˆFØŸ:™:Ÿ?™?¨6´2·:±:Ó>ˆFŒLØ!'§¡ˆFL‰LÔ Øˆ øô'ò *ÜŸ™ ›ð—<‘<Ð'Ø#Ÿ~™~×7Ñ7¸Ñ:HØ!Ÿ^™^Ó-×2Ñ2°5¸(ÓCFØ×'Ñ'¨Õ-äŸZ™ZŸ_™_¨T°5Ó9FØ%)×"ð *úsÁ    AEÅBG<Ç;G<có—d|_y)z+
        Forces the mask to hard.
 
        TN©Ú    _hardmaskrds r'Ú harden_maskzMaskedRecords.harden_mask‡s €ð
ˆrecó—d|_y)z*
        Forces the mask to soft
 
        FNr¾rds r'Ú soften_maskzMaskedRecords.soften_maskŽs €ð
ˆrecó¨—|jj«jt|««}|jj«|_|S)z7
        Returns a copy of the masked record.
 
        )r    r;rZrºr
)r.Úcopieds  r'r;zMaskedRecords.copy•s:€ð
—‘—‘Ó"×'Ñ'¬¨T«
Ó3ˆØ—z‘z—‘Ó(ˆŒ ؈ recó6—||j|«j«Stj|j«j«t¬«}tj|j
j««}d||<|j«S)a
        Return the data portion of the array as a list.
 
        Data items are converted to the nearest compatible Python type.
        Masked values are converted to fill_value. If fill_value is None,
        the corresponding entries in the output list will be ``None``.
 
        Nr*)rŒÚtolistrrBror
)r.rKÚresultrIs    r'rÆzMaskedRecords.tolistžsq€ð Ð !Ø—;‘;˜zÓ*×1Ñ1Ó3Ð 3Ü—‘˜$Ÿ+™+›-×.Ñ.Ó0¼Ô?ˆÜx‰x˜Ÿ
™
×)Ñ)Ó+Ó,ˆØˆˆt‰ ؏}‰}‹Ðrecóܗd|j|j|jj|jj «|j j «|jf}|S)zWReturn the internal state of the masked array.
 
        This is for pickling.
 
        r)r,r ÚflagsÚfncr    Útobytesr
rn)r.Ústates  r'Ú __getstate__zMaskedRecords.__getstate__®sW€ð Ø—‘Ø—‘Ø—‘—‘Ø—‘×#Ñ#Ó%Ø—‘×#Ñ#Ó%Ø×!Ñ!ð ˆðˆ recóV—|\}}}}}}}tjj|||||f«tj|jjD    
cgc]\}    }
|    tj
f‘Œc}
}    «} |j dj|| ||f«||_ycc}
}    w)at
        Restore the internal state of the masked array.
 
        This is for pickling.  ``state`` is typically the output of the
        ``__getstate__`` output, and is a 5-tuple:
 
        - class name
        - a tuple giving the shape of the data
        - a typecode for the data
        - a binary string for the data
        - a binary string for the mask.
 
        r
N)rrWÚ __setstate__r rrxr[rK) r.rÌÚverÚshpÚtypÚisfÚrawÚmskÚflvÚkÚ_rNs             r'rÏzMaskedRecords.__setstate__¾s‘€ð/4Ñ+ˆˆc3˜˜S # sÜ

‰
×Ñ  s¨C°°cÐ&:Ô;Ü—‘°d·j±j×6FÑ6F×G©F¨Q°˜AœrŸw™wš<ÓGÓHˆØ  ‰ gÑ×+Ñ+¨S°&¸#¸sÐ,CÔD؈ùóHsÁB%
có`—t|j|jddf|j«fS)z?
        Return a 3-tuple for pickling a MaskedArray.
 
        )rÚb)Ú_mrreconstructr·rUrÍrds r'Ú
__reduce__zMaskedRecords.__reduce__Òs1€ô
Ø—‘ §¡°$¸Ð=Ø×!Ñ!Ó#ð%ð    %re)NNr©)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r>r@r=rbÚpropertyr    r rirXrˆršrr¥r´rZrÀrÂr;rÆrÍrÏrÜrmrer'rrLs°„ñð"#'¨D¸ÀDØ D°Ø¨Ø—Y‘Y¨%¸DÈDØó    &òP.ð&ñ2óð2ðñóðò    ò-ò^6òpò@6ò *ò 'ó&òPòòóò ò ó(%rercóê—tjj|||«j|«}tjjtj|d«}|j||||¬«S)zK
    Build a new MaskedArray from the information stored in a pickle.
 
    Úb1)rIr )rrWr=rZ)ÚsubtypeÚ    baseclassÚ    baseshaper¼r    r
s      r'rÛrÛÜsZ€ô
J‰J× Ñ ˜y¨)°XÓ >× CÑ CÀGÓ L€EÜ J‰J× Ñ œrŸz™z¨9°dÓ ;€EØ ?‰?˜7 E°¸Xˆ?Ó GÐGreFc    
óŽ—|D    cgc]}    tj|    «‘Œ}
}    |D    cgc]*}    tjtj|    ««‘Œ,} }    tj
j |
|||||||¬«jt«} tt| Ž«| j_ ||| _ | Scc}    wcc}    w)a 
    Creates a mrecarray from a (flat) list of masked arrays.
 
    Parameters
    ----------
    arraylist : sequence
        A list of (masked) arrays. Each element of the sequence is first converted
        to a masked array if needed. If a 2D array is passed as argument, it is
        processed line by line
    dtype : {None, dtype}, optional
        Data type descriptor.
    shape : {None, integer}, optional
        Number of records. If None, shape is defined from the shape of the
        first array in the list.
    formats : {None, sequence}, optional
        Sequence of formats for each individual field. If None, the formats will
        be autodetected by inspecting the fields and selecting the highest dtype
        possible.
    names : {None, sequence}, optional
        Sequence of the names of each field.
    fill_value : {None, sequence}, optional
        Sequence of data to be used as filling values.
 
    Notes
    -----
    Lists of tuples should be preferred over lists of lists for faster processing.
 
    ©r r,r7rr8r:r9)r>ÚgetdatarÚ
atleast_1drÚrecrrZrrrr
r-rK) Ú    arraylistr r,r7rr8r:r9rKÚxÚdatalistÚmasklistÚ_arrays              r'rrîs°€ð>(1Ö1 !”—
‘
˜1• Ð1€HÐ1Ø;DÖE°a”— ‘ œbŸo™o¨aÓ0Õ1ÐE€HÐEÜ V‰V× Ñ ˜xØ%*°%ÀØ%*°6À7Ø)2ðó4÷59±D¼³Oð ôœS (˜^Ó,€F‡LLÔØÐØ&ˆÔØ €Mùò2ùÚEs
…B=§/Cc
 
ó—t|dd«}
t|tj«ret|tj
«r-|j «jtj«}|€ |j}|j«}tjj||||||||¬«jt«} ||| _ |    tjur‡tj|    «}    t!|    j«} | r|    | j"_nI|    j&dk(r)|    D cgc] } t)| «‘Œc} | j"_n| j+|    «|
|
| j"dd| Scc} w)aN
    Creates a MaskedRecords from a list of records.
 
    Parameters
    ----------
    reclist : sequence
        A list of records. Each element of the sequence is first converted
        to a masked array if needed. If a 2D array is passed as argument, it is
        processed line by line
    dtype : {None, dtype}, optional
        Data type descriptor.
    shape : {None,int}, optional
        Number of records. If None, ``shape`` is defined from the shape of the
        first array in the list.
    formats : {None, sequence}, optional
        Sequence of formats for each individual field. If None, the formats will
        be autodetected by inspecting the fields and selecting the highest dtype
        possible.
    names : {None, sequence}, optional
        Sequence of the names of each field.
    fill_value : {None, sequence}, optional
        Sequence of data to be used as filling values.
    mask : {nomask, sequence}, optional.
        External mask to apply on the data.
 
    Notes
    -----
    Lists of tuples should be preferred over lists of lists for faster processing.
 
    r
Nrèrk)rVrrrWr>rzrŒrZr rÆrërrrKr@r—rr
r-rhrrF)Úreclistr r,r7rr8r:r9rKrIr
ÚmrecÚmaskrecordlengthrRs              r'rrs1€ôD G˜W dÓ +€Eä'œ2Ÿ:™:Ô&ä gœrŸ~™~Ô .Ø—n‘nÓ&×+Ñ+¬B¯J©JÓ7ˆGà ˆ=Ø—M‘MˆEØ—.‘.Ó"ˆÜ 6‰6× Ñ ˜g¨U¸%ÈØ %¨fØ")°Yð ó @ç@DÁÄYÃð    ðÐØ$ˆŒà ”2—9‘9Ñ܏z‰z˜$ӈܘtŸz™z›?ÐÙ Ø"ˆDJ‰JOØ Y‰Y˜!Š^Ø15Ö6¨Aœu QxÒ6ˆDJ‰JOà × Ñ ˜TÔ "Ø ÐØˆ
‰
‘1ˆ Ø €Kùò 7sÄ3E<có—g}tj|«}|jdk(r|d}n|jdkDr td«‚|D]6}    t    |«|j tj t««Œ8|S#ttf$r²    t|«|j tj t««nz#ttf$rh    t|«|j tj t««n0#ttf$r|j |j «YnwxYwYnwxYwYŒûwxYw)a.
    Tries to guess the dtypes of the str_ ndarray `arr`.
 
    Guesses by testing element-wise conversion. Returns a list of dtypes.
    The array is first converted to ndarray. If the array is 2D, the test
    is performed on the first line. An exception is raised if the file is
    3D or more.
 
    rkrzThe array should be 2D at most!)
rr—rhr|Úintrr rrÚfloatÚcomplex)ÚarrÚvartypesrs   r'Ú_guessvartypesrûZs€ð€HÜ
*‰*S‹/€CØ
‡xx1‚}ؐ!‰f‰Ø     ‰AŠÜÐ:Ó;Ð;à ò+ˆð    +Ü ŒFð O‰OœBŸH™H¤S›MÕ *ð!+ð" €OøôœIÐ&ò     1ð
1ܐa”𗑤§¡¬£Õ0øô¤    Ð*ò 7ð7ܘA”Jð—O‘O¤B§H¡H¬WÓ$5Õ6øô#¤IÐ.ò/Ø—O‘O C§I¡IÖ.ð/üð 7üð     1úsZÁ BÂE CÂ)EÃD?à D Ã#)D?Ä *D9    Ä6D?Ä8D9    Ä9D?Ä<EÄ>D?Ä?EÅEcó—t|d«r|S    t|«}|j«dddk7r|j    dd«|S|j «t d«‚#t$r}td|›d«|‚d}~wwxYw)    z1
    Opens the file handle of file `fname`.
 
    ÚreadlinezNo such file: 'ú'Nrkz\xrzWow, binary file)ÚhasattrÚopenÚFileNotFoundErrorrýÚseekÚcloseru)Úfnamerrs   r'ÚopenfilersŠ€ô ˆujÔ!؈ ðCÜ ‹Kˆð    ‡zzƒ|BQИ5Ò Ø    ‰ˆq!Œ ؈؇GG„IÜ
Ð0Ó
1Ð1øô òCÜ /°%°¸Р:Ó;ÀÐBûðCús A Á     A>Á)A9Á9A>)Ú    delimitorc óˆ—|tjur+| td«‚tjdt
d¬«|}t |«}    |j«}|d|j|«j«}    |    j|«}
t|
«dkDrnŒS|€|
}tj|Dcgc]7}|d|k7r-t|«dkDr|j«j|«‘Œ9c}«} | j\} } |j«|€t!| d«}nl|Dcgc]}tj"|«‘Œ}}t|«| k7r<dt|«›d    | ›d
}|d z }tj|d¬«t!| d«}t%t'||««}|Dcgc]}tj(|«‘Œ}}| j*|k(}t'| j*|||«Dcgc] \}}}}tj||||¬ «‘Œ"}}}}}t-||¬ «Scc}wcc}wcc}wcc}}}}w)a®
    Creates a mrecarray from data stored in the file `filename`.
 
    Parameters
    ----------
    fname : {file name/handle}
        Handle of an opened file.
    delimiter : {None, string}, optional
        Alphanumeric character used to separate columns in the file.
        If None, any (group of) white spacestring(s) will be used.
    commentchar : {'#', string}, optional
        Alphanumeric character used to mark the start of a comment.
    missingchar : {'', string}, optional
        String indicating missing data, and used to create the masks.
    varnames : {None, sequence}, optional
        Sequence of the variable names. If None, a list will be created from
        the first non empty line of the file.
    vartypes : {None, sequence}, optional
        Sequence of the variables dtypes. If None, it will be estimated from
        the first non-commented line.
 
 
    Ultra simple: the varnames are in the header, one lineNz;fromtextfile() got multiple values for argument 'delimiter'zThe 'delimitor' keyword argument of numpy.ma.mrecords.fromtextfile() is deprecated since NumPy 1.22.0, use 'delimiter' instead.rk)Ú
stacklevelrrzAttempting to z  dtypes for z fields!z Reverting to default.)rIr rKr*)rÚ_NoValuerrÚwarningsÚwarnÚDeprecationWarningrrýÚfindÚstriprrr>Ú masked_arrayr,rrûr rrÚdefault_fill_valueÚTr)rÚ    delimiterÚ commentcharÚ missingcharÚvarnamesrúrÚftextÚlineÚ    firstlineÚ    _varnamesÚ
_variablesrØÚnfieldsÚvrQr/rÚmfillvr
ÚarRr&Ú    _datalists                        r'rr“sH€ð4œŸ ™ Ñ#Ø Ð  Üð*ó+ð +ô     ‰ ðEô)°Qõ    8ðˆ    ô U‹O€Eð Ø~‰~ÓˆØÐ0˜$Ÿ)™) KÓ0Ð1×7Ñ7Ó9ˆ    Ø—O‘O IÓ.ˆ    Ü ˆy‹>˜AÒ Ø ð ð ÐØˆô—‘ÈEö"NÀDØ$(¨¡G¨{Ò$:¼sÀ4»yÈ1º}ð#'§*¡*£,×"4Ñ"4°YÕ"?ò"NóO€Jà×#Ñ#L€QˆØ    ‡KK„MðÐÜ! *¨Q¡-Ó0‰à)1Ö2 A”B—H‘H˜Q•KÐ2ˆÐ2Ü ˆx‹=˜GÒ #Ø"¤3 x£= /°¸g¸YÀhÐOˆCØ Ð+Ñ +ˆCÜ M‰M˜#¨!Õ ,Ü% j°¡mÓ4ˆHô”#h Ó)Ó *€FØ08Ö 9¨1Œb×#Ñ# AÕ&Ð 9€FÐ 9ð\‰\˜[Ñ (€Eä%(¨¯©°u¸hÈÓ%O÷QñQÙ!a˜˜A˜qô—‘ ¨°!ÀÖBðQ€IóQô i vÔ .Ð.ùò5"Nùò3ùò:ùõ
QsÂ4<H-Ä+H2Æ,H7Ç6%H<
cóˆ—|j}|j}||tvrdt|j«›}t j |«}tj|jj||jfgz«}tj|j|«}|jjj«Dcgc]"}|j|j|Žg|¢­Ž‘Œ$c}|j|jg|jj|¢­Ž|jt «}tj|j"Dcgc]}|tj$f‘Œc}«}    tj|j|    «}
|jjj«Dcgc]"}|
j|j|Žg|¢­Ž‘Œ$c}|
jt j&|«g|
jj|¢­Ž|
|_|Scc}wcc}wcc}w)zÜAdds a new field to the masked record array
 
    Uses `newfield` as data and `newfieldname` as name. If `newfieldname`
    is None, the new field name is set to 'fi', where `i` is the number of
    existing fields.
 
    r)r    r
rrr r>rBrrr<r,rqÚvaluesrŽrtrZrrrxr) ÚmrecordÚnewfieldÚ newfieldnamer    r
ÚnewdtypeÚnewdatarr$Ú    newmdtypeÚnewmasks            r'rrãsÙ€ð M‰M€EØ M‰M€EØÐ˜|¬Ñ>Øœ3˜uŸ{™{Ó+Ð,Ð-ˆ ܏x‰x˜Ó!€Hôx‰x˜Ÿ ™ ×)Ñ)¨l¸H¿N¹NÐ-KÐ,LÑLÓM€H܏k‰k˜%Ÿ+™+ xÓ0€Gðk‰k× Ñ ×'Ñ'Ó)ö+Ø    
ð€W×ѐne—n‘n aÐ(Ð-¨1Ô-ó+ð€G×ѐX—^‘^ÐI g§m¡m×&:Ñ&:¸<Ñ&HÓI؏l‰lœ=Ó)€Gô—‘°·±Ö?¨1˜1œbŸg™gš,Ò?Ó@€I܏k‰k˜%Ÿ+™+ yÓ1€Gðk‰k× Ñ ×'Ñ'Ó)ö+Ø    
ð€W×ѐne—n‘n aÐ(Ð-¨1Ô-ó+ð€G×Ñ”R—_‘_ XÓ.ð:Ø—m‘m×*Ñ*¨<Ñ8ó:à€G„MØ €Nùò!+ùò@ùò+sÃ'H5ÅH:Ç'H?r©)NNNNNFNN)Nú#ÚNN)ràr
ÚnumpyrÚnumpy.mar>Ú_coreÚrecordsÚ_byteorderconvÚcoreÚ_check_fill_valueÚ__all__rr(r1rzrrÛrrr@rrûrr    rrrmrer'ú<module>r3sÕðñ    óãÝà—‘×!Ñ!×0Ñ0€ð—G‘G×-Ñ-Ðò €ò
<€óòDôM%B—N‘NôM%ò` Hð €    ð;?ØAEØó(ðV $¨4¸ÀTØ U°dØ b§i¡ió>òB"òJ2ð(FHØ)-ðM/à Ÿk™kôM/ô`"re