a DOg@sgdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z m Z ddlm Z mZmZmZmZmZmZmZddlmZdd lmZGd d d eZdFd d ZddZddZddZddZddZ ddZ!dGddZ"ddZ#dd Z$d!d"Z%d#d$Z&d%d&Z'd'd(Z(d)d*Z)dHd,d-Z*d.d/Z+d0d1Z,d2d3d4d5d6Z-dId7d8Z.dJd9d:Z/dKd;d<Z0dLd=d>Z1dMd?d@Z2dAdBZ3zddCl4m3Z3Wne5yYn0GdDdEdEZ6dS)N) NormalDistStatisticsErrorfmeangeometric_mean harmonic_meanmeanmedianmedian_grouped median_high median_lowmode multimodepstdev pvariance quantilesstdevvarianceNFraction)Decimal)groupby) bisect_left bisect_right)hypotsqrtfabsexperftaulogfsum) itemgetter)Counterc@s eZdZdS)rN)__name__ __module__ __qualname__r&r&//opt/alt/python39/lib64/python3.9/statistics.pyrusrc Csd}t|\}}||i}|j}ttt|}t|tD]@\}} t||}tt| D]"\}}|d7}||d|||<qRq6d|vr|d} ntddt| D} || |fS)Nrcss|]\}}t||VqdSNr).0dnr&r&r' z_sum..) _exact_ratioget_coerceinttypermapsumsorteditems) datastartcountr,r+ZpartialsZ partials_getTtypvaluestotalr&r&r'_sum{s$  r?cCs,z |WSty&t|YS0dSr))Z is_finiteAttributeErrormathZisfinite)xr&r&r' _isfinites  rCcCs||ur |S|tus|tur |S|tur,|St||r:|St||rH|St|trV|St|trd|St|tr|t|tr||St|trt|tr|Sd}t||j|jfdS)Nz"don't know how to coerce %s and %s)r2bool issubclassrfloat TypeErrorr#)r;Smsgr&r&r'r1s  r1c Csznt|tust|tur$|WSz|j|jfWWStyjz|WYWStydYn0Yn0Wnttfy|dfYS0d}t | t|j dS)Nz0can't convert type '{}' to numerator/denominator) r3rFras_integer_ratio numerator denominatorr@ OverflowError ValueErrorrGformatr#)rBrIr&r&r'r/s   r/cCsnt||ur|St|tr(|jdkr(t}z ||WStyht|trb||j||jYSYn0dS)Nr()r3rEr2rLrFrGrrK)valuer;r&r&r'_converts    rQcCs.t||}|t|kr&|||kr&|StdSr))rlenrN)arBir&r&r' _find_lteq s rUcCs>t|||d}|t|dkr6||d|kr6|dStdS)N)lor()rrRrN)rSlrBrTr&r&r' _find_rteqs rXnegative valueccs$|D]}|dkrt||VqdS)Nr)r)r=errmsgrBr&r&r' _fail_negsr[cCsHt||urt|}t|}|dkr,tdt|\}}}t|||S)Nr(z%mean requires at least one data point)iterlistrRrr?rQ)r8r,r;r>r:r&r&r'r's rcspz t|Wn.ty:dfdd}t||}Yn 0t|}z |WStyjtddYn0dS)Nrc3s t|ddD]\}|Vq dS)Nr()r9) enumerate)iterablerBr,r&r'r:Oszfmean..countz&fmean requires at least one data point)rRrGr ZeroDivisionErrorr)r8r:r>r&r`r'rAs      rcCs6ztttt|WSty0tddYn0dS)NzGgeometric mean requires a non-empty dataset containing positive numbers)rrr4rrNr)r8r&r&r'r\s  rcCst||urt|}d}t|}|dkr2tdn<|dkrn|d}t|tjtfrf|dkrbt||Stdz"t ddt ||D\}}}Wnt yYdS0t |||S)Nz.harmonic mean does not support negative valuesr(z.harmonic_mean requires at least one data pointrzunsupported typecss|]}d|VqdS)r(Nr&r*rBr&r&r'r-r.z harmonic_mean..) r\r]rRr isinstancenumbersZRealrrGr?r[rarQ)r8rZr,rBr;r>r:r&r&r'ros$  " rcCs\t|}t|}|dkr td|ddkr8||dS|d}||d||dSdSNrno median for empty datar(r6rRr)r8r,rTr&r&r'rs   rcCsLt|}t|}|dkr td|ddkr8||dS||ddSdSrerhr8r,r&r&r'r s   r cCs,t|}t|}|dkr td||dS)Nrrfrgrhrir&r&r'r s r r(c Cst|}t|}|dkr"tdn|dkr2|dS||d}||fD]}t|ttfrFtd|qFz||d}Wn&tyt|t|d}Yn0t||}t |||}|}||d} |||d|| S)Nrrfr(rgzexpected number but got %r) r6rRrrcstrbytesrGrFrUrX) r8Zintervalr,rBobjLl1l2Zcffr&r&r'rs&       rcCsBtt|d}z|ddWSty<tddYn0dS)Nr(rzno mode for empty data)r"r\ most_common IndexErrorr)r8Zpairsr&r&r'r s  r cCs@tt|}tt|tdddgf\}}tttd|S)Nr()keyr)r"r\rqnextrr!r]r4)r8ZcountsZmaxcountZ mode_itemsr&r&r'r 4s r  exclusive)r,methodc CsB|dkrtdt|}t|}|dkr0td|dkr|d}g}td|D]D}t|||\}}||||||d||} || qN|S|dkr0|d}g}td|D]r}|||}|dkrdn||dkr|dn|}||||}||d||||||} || q|Std|dS)Nr(zn must be at least 1rgz"must have at least two data pointsZ inclusivervzUnknown method: )rr6rRrangedivmodappendrN) r8r,rwZldmresultrTjZdeltaZ interpolatedr&r&r'rks2$   $$ rcsdur,tfdd|D\}}}||fSt|tfdd|D\}}}tfdd|D\}}}||dt|8}||fS)Nc3s|]}|dVqdSrgNr&rbcr&r'r-r.z_ss..c3s|]}|dVqdSr~r&rbrr&r'r-r.c3s|]}|VqdSr)r&rbrr&r'r-r.rg)r?rrR)r8rr;r>r:UZtotal2Zcount2r&rr'_sssrcCsLt||urt|}t|}|dkr,tdt||\}}t||d|S)Nrgz*variance requires at least two data pointsr(r\r]rRrrrQ)r8xbarr,r;ssr&r&r'rs& rcCsHt||urt|}t|}|dkr,tdt||\}}t|||S)Nr(z*pvariance requires at least one data pointr)r8mur,r;rr&r&r'rs# rcCs6t||}z |WSty0t|YS0dSr))rrr@rA)r8rvarr&r&r'rs   rcCs6t||}z |WSty0t|YS0dSr))rrr@rA)r8rrr&r&r'r $s   r cCs|d}t|dkrd||}d|d|d|d|d|d |d |d |}d |d |d|d|d|d|d|d}||}|||S|dkr|nd|}tt| }|dkr^|d}d|d|d|d|d|d|d|d}d|d |d!|d"|d#|d$|d%|d}n|d}d&|d'|d(|d)|d*|d+|d,|d-}d.|d/|d0|d1|d2|d3|d4|d}||}|dkr| }|||S)5N?g333333?gQ?g^}o)@gE.kR@g Ul@g*u>l@gN@g"]Ξ@gnC`@gu @giK~j@gv|E@gd|1@gfRr@gu.2@g~y@gn8(E@?g@g?g鬷ZaI?ggElD?g7\?guSS?g=. @gj%b@gHw@gjRe?g9dh? >g('߿A?g~z ?g@3?gɅ3?g3fRx?gIFl@gt>g*Yn>gESB\T?gN;A+?gUR1?gEF?gPn@g&>@gigtcI,\>gŝI?g*F2v?gC4?gO1?)rrr)prsigmaqrZnumZdenrBr&r&r'_normal_dist_inv_cdf7sd      r)rc@seZdZdddZd9ddZedd Zd d d d ZddZddZ ddZ d:ddZ ddZ ddZ eddZeddZedd Zed!d"Zed#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0ZeZd1d2ZeZd3d4Zd5d6Zd7d8Zd S);rz(Arithmetic mean of a normal distributionz+Standard deviation of a normal distribution)_mu_sigmarrcCs(|dkrtdt||_t||_dS)Nrzsigma must be non-negative)rrFrr)selfrrr&r&r'__init__s zNormalDist.__init__cCs.t|ttfst|}t|}||t||Sr))rcr]tuplerr)clsr8rr&r&r' from_samplesszNormalDist.from_samplesN)seedcsB|durtjn t|j|j|jfddt|DS)Ncsg|]}qSr&r&r*rTgaussrrr&r' r.z&NormalDist.samples..)randomrZRandomrrrx)rr,rr&rr'samplesszNormalDist.samplescCs<|jd}|stdt||jdd|tt|S)N@z$pdf() not defined when sigma is zerog)rrrrrr)rrBrr&r&r'pdfs zNormalDist.pdfcCs2|jstdddt||j|jtdS)Nz$cdf() not defined when sigma is zerorrr)rrrrrrrBr&r&r'cdfszNormalDist.cdfcCs:|dks|dkrtd|jdkr*tdt||j|jS)Nrrz$p must be in the range 0.0 < p < 1.0z-cdf() not defined when sigma at or below zero)rrrr)rrr&r&r'inv_cdfs  zNormalDist.inv_cdfrucsfddtdDS)Ncsg|]}|qSr&)rrr,rr&r'rr.z(NormalDist.quantiles..r()rx)rr,r&rr'rs zNormalDist.quantilesc Cst|tstd||}}|j|jf|j|jfkr>||}}|j|j}}|rT|s\td||}t|j|j}|sdt|d|jt dS|j||j|}|j|jt |d|t ||} || |} || |} dt| | | | t| | | | S)Nz$Expected another NormalDist instancez(overlap() not defined when sigma is zerorr) rcrrGrrrrrrrrr) rotherXYZX_varZY_varZdvZdmrSbx1x2r&r&r'overlaps"   (  zNormalDist.overlapcCs|jstd||j|jS)Nz'zscore() not defined when sigma is zero)rrrrr&r&r'zscoreszNormalDist.zscorecCs|jSr)rrr&r&r'rszNormalDist.meancCs|jSr)rrr&r&r'rszNormalDist.mediancCs|jSr)rrr&r&r'r szNormalDist.modecCs|jSr)rrr&r&r'rszNormalDist.stdevcCs |jdS)Nrrrr&r&r'rszNormalDist.variancecCs8t|tr&t|j|jt|j|jSt|j||jSr)rcrrrrrrr&r&r'__add__s zNormalDist.__add__cCs8t|tr&t|j|jt|j|jSt|j||jSr)rrr&r&r'__sub__'s zNormalDist.__sub__cCst|j||jt|Sr)rrrrrr&r&r'__mul__5szNormalDist.__mul__cCst|j||jt|Sr)rrr&r&r' __truediv__=szNormalDist.__truediv__cCst|j|jSr)rrrrr&r&r'__pos__EszNormalDist.__pos__cCst|j |jSr)rrr&r&r'__neg__IszNormalDist.__neg__cCs || Sr)r&rr&r&r'__rsub__OszNormalDist.__rsub__cCs&t|tstS|j|jko$|j|jkSr))rcrNotImplementedrrrr&r&r'__eq__Us zNormalDist.__eq__cCst|j|jfSr))hashrrrr&r&r'__hash__[szNormalDist.__hash__cCs t|jd|jd|jdS)Nz(mu=z, sigma=))r3r#rrrr&r&r'__repr___szNormalDist.__repr__)rr)ru) r#r$r% __slots__r classmethodrrrrrrrrpropertyrrr rrrrrrrr__radd__r__rmul__rrrr&r&r&r'rsF   "      r)r)rY)r()N)N)N)N)N)7__all__rArdrZ fractionsrdecimalr itertoolsrZbisectrrrrrrrrrr operatorr! collectionsr"rNrr?rCr1r/rQrUrXr[rrrrrr r rr r rrrrrr rZ _statistics ImportErrorrr&r&r&r'SsR   (   :  / 778  / ,  K