[SciPy-Dev] 3D Meshgrid

Ralf Gommers ralf.gommers at googlemail.com
Fri Nov 11 14:50:08 EST 2011


On Wed, Nov 9, 2011 at 8:39 AM, <Per.Brodtkorb at ffi.no> wrote:

> Øverst i skjemaet****
>
> The timings for the original version:****
>
> In [10]: x = np.arange(10)****
>
> In [11]: %timeit X,Y = np.meshgrid(x,x)****
>
> 100000 loops, best of 3: 9.79 us per loop****
>
> compared to the new proposal:****
>
> In [12]: %timeit X,Y = meshgrid(x,x)****
>
> 10000 loops, best of 3: 33.4 us per loop****
>
> ** **
>
> In [13]: %timeit X,Y = meshgrid(x,x, sparse=True)****
>
> 10000 loops, best of 3: 18.3 us per loop****
>
> ** **
>
> In [14]: %timeit X,Y = meshgrid(x,x, sparse=True, copy=False)****
>
> 10000 loops, best of 3: 15 us per loop****
>
> ** **
>
> In [15]: %timeit X,Y = meshgrid(x,x, sparse=True, copy=False,
> indexing='ij')****
>
> 100000 loops, best of 3: 12.3 us per loop****
>
> Nederst i skjemaet****
>
> Øverst i skjemaet****
>
> Changed 23 hours<http://projects.scipy.org/numpy/timeline?from=2011-11-08T02%3A13%3A40-0600&precision=second> ago
> by pbrod ****
>
> However, the timings for the new version is even better when the size of
> the input vectors are large. The timings for the original version with
> size=100:****
>
> In [36]: x = np.arange(100)****
>
> ** **
>
> In [37]: %timeit X,Y = np.meshgrid(x,x)****
>
> 10000 loops, best of 3: 96.8 us per loop****
>
> compared to the new proposal:****
>
> In [38]: %timeit X,Y = meshgrid(x,x, sparse=False, copy=True,
> indexing='xy')****
>
> 10000 loops, best of 3: 109 us per loop****
>
> ** **
>
> In [39]: %timeit X,Y = meshgrid(x,x, sparse=True, copy=True, indexing='xy')
> ****
>
> 100000 loops, best of 3: 18.5 us per loop****
>
> ** **
>
> In [40]: %timeit X,Y = meshgrid(x,x, sparse=True, copy=True, indexing='ij')
> ****
>
> 100000 loops, best of 3: 15.5 us per loop****
>
> ** **
>
> In [41]: %timeit X,Y = meshgrid(x,x, sparse=True, copy=False,
> indexing='ij')****
>
> 10000 loops, best of 3: 12 us per loop****
>
> ** **
>
> In [42]: %timeit X,Y = meshgrid(x,x, sparse=False, copy=False,
> indexing='ij')****
>
> 10000 loops, best of 3: 62.2 us per loop****
>
> Nederst i skjemaet****
>
> ** **
>
> ** **
>
> *Per A. Brodtkorb*
>

That looks good. The benchmark for larger arrays is more important I think.

+1 on merging this. If you or someone else could add some tests that cover
the new functionality and send a pull request, that would be helpful. There
are some other small things in the patch that need to be fixed, I'll add
those to the ticket.

Cheers,
Ralf

**
>
> ** **
>
> *Fra:* scipy-dev-bounces at scipy.org [mailto:scipy-dev-bounces at scipy.org] *På
> vegne av* Ralf Gommers
> *Sendt:* 7. november 2011 22:55
> *Til:* SciPy Developers List
> *Emne:* Re: [SciPy-Dev] 3D Meshgrid****
>
> ** **
>
> ** **
>
> On Thu, Nov 3, 2011 at 1:28 PM, Antoine Levitt <antoine.levitt at gmail.com>
> wrote:****
>
> The version in scitools looks consistent with numpy, compatible with the
> current API, and useful (in the common use case of a 3D grid, or a
> rectangular grid with irregular spacing, mgrid and ogrid are not enough)
>
> Could someone take a look at it?****
>
>
> Looks like a useful improvement in functionality for little added
> complexity in the interface. So in principle I'm +1.
>
> The patch does need tests though, and it would be good if someone could
> check that the 2-D case doesn't get much slower.
>
> Ralf
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20111111/140b9ac4/attachment.html>


More information about the SciPy-Dev mailing list