B *sztimer..Zxyzz"from __main__ import numpy, ma, %s,)Zstmtsetupgrz&%d loops, best of %d: %.*g %s per loop) printjointimeitTimerminrepeatintnumpyZfloorZlog10) r vnloopZnrepZunitsZscalingZvarnamesrrZbestorderrrrtimer&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_1v8s  r0rc 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)) Z methodnameargsvarsr#testr+r&r,r'r/Zverrrrcompare_methodsEs  r4c 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#r3r+r&ysnmysr,r'ylnmylr-r.r/rrrcompare_functions_2vQs  r9__main__Zraveli)r# conjugatezZ transposeZ compressed __getitem__0z(0,0)z[0,-1] __setitem__z0, 17)r#r3z (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)&Z __future__rrrr!ZrandomZuniformZreshaper+r5ZzsZm1Zm2ZmaZarrayr&r6Znmzsr,r7ZzlZmaskxZmaskyr'r8Znmzlr%r0r4r9r(ZsinlogZsqrtZmultiplyZdivideZpowerrrrrrsp