> ...
> No, but you can do this:
> 
> plt.plot([3] * 4, [60, 80, 120, 180], ...)

This started from a simple enough question, but it got me thinking about what 
the fastest way to do this is (in case you have HUGE arrays, or many loops over 
them).  This may be old news to some of you, but I thought it was interesting: 

In ipython --pylab

In [1]: %timeit l=[3]*10000
10000 loops, best of 3: 53.3 us per loop

In [2]: %timeit l=np.zeros(10000)+3
10000 loops, best of 3: 26.9 us per loop

In [3]: %timeit l=np.ones(10000)*3
10000 loops, best of 3: 32.9 us per loop

In [4]: %timeit l=(np.zeros(1)+3).repeat(10000)
10000 loops, best of 3: 87.4 us per loop

In [5]: %timeit l=np.zeros(10000);l[:]=3
10000 loops, best of 3: 21.6 us per loop

In [6]: %timeit l=np.zeros(10000,dtype=np.uint8);l[:]=3
100000 loops, best of 3: 13.9 us per loop

Using int16, int32, float32 get progressively slower to the default float64 
case listed on line [5], changing the datatype in other methods doesn't result 
in nearly as large a speed up as it does in the last case. 

Ben's method is probably the most elegant for small arrays, but does any one 
else have a faster way to do this?  (I'm assuming no use of blitz, inline C, 
f2py, but if you think you can do it faster in one of those, show me the way).  

Sorry, maybe this is more appropriate on the numpy list. 

Ethan


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to