B []N @sddlmZmZddlZddlZejdddddZejdddddZ ede Z d d d gd d d ggZ d d d gd d d ggZ ej jee d Zej je e d Zej je e d Zejddd d d Zejddd d d ZedeZedkZedkZej jeed Zej jeed Zej jeed Zd5ddZdeeeefddZddd eeeefddZdd eee eeeeef ddZedkreejeej eej!eej"eej#eej$eddddeddd dded!ddded"ddded#d$dded#d%dded#d&dded'd(dd d)ed'd*dd d)e%d+e%d,ed-d.d de%d+e%d/ed0d.d de%d+e%d1ed2d.dde%d+e%d3ed4d.d ddS)6)divisionprint_functionNy?TF)maski'dg?gc Csddddg}ddddg}td ||fd d d d dD}dd|}tj||d}t||||} | dkrtttt | d d} nd} td||d| || || fdS)Nsmsuµsnsrg@@g.AgeAz %s : %-50s :  )endcSsg|]}dt|dqS)z%ss,nm%ss,%sl,nm%sl)tuple).0xr1/tmp/pip-install-svzetoqp/numpy/numpy/ma/bench.py -sztimer..Zxyzz"from __main__ import numpy, ma, %s,)Zstmtsetupgrz&%d loops, best of %d: %.*g %s per loop) printjointimeitTimerminrepeatintnumpyfloorlog10) r vnloopZnrepZunitsZscalingvarnamesrrbestorderrrrtimer)s  " r*c Csj|j}tdtd|d\}}tdtd||dtd|d\}}tdtd||ddS) Nz2--------------------------------------------------z%s on small arrays)znumpy.manmxsz!%(module)s.%(funcname)s(%(data)s)z%11s)r%r&z%s on large arrays)znumpy.manmxl)__name__rr*locals) funcr&xsr+xlr,funcnamemoduledatarrrcompare_functions_1v;s  r5rc Cshtdtd|d|d} } tdt| |dtd|d|d} } tdt| |ddS) Nz2--------------------------------------------------z%s on small arraysznm%ssznumpy.maz!%(data)s.%(methodname)s(%(args)s))r%r&z%s on large arraysznm%sl)rr*r.) methodnameargsvarsr&testr0r+r1r,r4verrrrcompare_methodsHs  r;c Csj|j} tdtd| d\} } tdtd| |dtd| d\} } tdtd| |ddS) Nz2--------------------------------------------------z%s on small arrays)znumpy.maz nmxs,nmysz!%(module)s.%(funcname)s(%(data)s)z%11s)r%r&z%s on large arrays)znumpy.maz nmxl,nmyl)r-rr*r.)r/r&r9r0r+ysnmysr1r,ylnmylr2r3r4rrrcompare_functions_2vTs  r@__main__Zraveli)r& conjugatezZ transpose compressed __getitem__0z(0,0)z[0,-1] __setitem__z0, 17)r&r9z (0,0), 17z2--------------------------------------------------z__setitem__ on small arraysz(nmxs.__setitem__((-1,0),numpy.ma.masked)z numpy.ma z__setitem__ on large arraysz(nmxl.__setitem__((-1,0),numpy.ma.masked)zwhere on small arraysz numpy.ma.where(nmxs>2,nmxs,nmys)zwhere on large arraysz numpy.ma.where(nmxl>2,nmxl,nmyl))r r r)& __future__rrrr"randomuniformZreshaper0r<Zzsm1m2maarrayr+r=Znmzsr1r>ZzlZmaskxZmaskyr,r?Znmzlr*r5r;r@r-sinlogsqrtmultiplydividepowerrrrrrsp