[SciPy-Dev] 3D Meshgrid
Per.Brodtkorb@f...
Per.Brodtkorb@f...
Mon Nov 14 06:42:13 CST 2011
Hi,
I have added a new patch that incorporates the suggestions from Ralf as well as tests for the sparse=True and indexing=ij cases at http://projects.scipy.org/numpy/ticket/966 <http://projects.scipy.org/numpy/ticket/966> .
If someone could have look at it, that would be great.
Per A. Brodtkorb
Fra: scipy-dev-bounces@scipy.org [mailto:scipy-dev-bounces@scipy.org] På vegne av Ralf Gommers
Sendt: 11. november 2011 20:50
Til: SciPy Developers List
Emne: Re: [SciPy-Dev] 3D Meshgrid
On Wed, Nov 9, 2011 at 8:39 AM, <Per.Brodtkorb@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@scipy.org [mailto:scipy-dev-bounces@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@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.scipy.org/pipermail/scipy-dev/attachments/20111114/e33e1f91/attachment-0001.html
More information about the SciPy-Dev
mailing list