Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.048 X-Spam-Evidence: '*H*': 0.90; '*S*': 0.00; 'nested': 0.07; 'thats': 0.09; 'python': 0.11; "'from": 0.16; '100;': 0.16; 'itertools': 0.16; 'loop.': 0.16; 'looping': 0.16; 'loops': 0.16; 'subject:skip:m 10': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'trying': 0.19; 'normally': 0.19; 'example': 0.22; 'import': 0.22; 'aug': 0.22; '>': 0.26; 'compare': 0.26; 'header:In-Reply-To:1': 0.27; 'array': 0.29; 'compared': 0.30; 'message-id:@mail.gmail.com': 0.30; 'url:mailman': 0.30; 'url:python': 0.33; 'operations': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'right?': 0.36; 'surely': 0.36; 'done': 0.36; 'url:listinfo': 0.36; 'doing': 0.36; 'thanks': 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'expected': 0.38; 'to:addr:python-list': 0.38; 'pm,': 0.38; 'to:addr:python.org': 0.39; 'url:mail': 0.40; 'new': 0.61; 'further': 0.61; 'such': 0.63; 'skip:n 10': 0.64; 'taking': 0.65; 'dear': 0.65; 'yes': 0.68; '100': 0.79; 'otten': 0.84; 'picture.': 0.84; 'subject:space': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=y4vEROqd8yaUzLBqDxLcstFKyPyZZ8g1MNvPRvvZi/M=; b=sL4dWYQX+9ggEgYz3UmZfH8DQK24QS5X0mMmfSOxDM7wZgwZf9XCGF0BBBvva+kB83 zys3/0gg2Wl2EcK3XNRDD+JJ6gcFpMDekDnUHNk9o9mPIwjMsvYSDovMI8TpriCiYAnF AeAhkioIBlwhjh3QetTphrytIlpxk3RnJDoppFcrLAsLrwz3GtpToinx1pk0SNhOotOs 3qEZ7DryT8u38ht525XgCEyzyTHLpPWaR5D/XIM8F1sgBIHJO5zzyuP3EyLvVq3BeHXn aNb5J0p+fKJajSfCe2r+Ku7klOGRCjwv1sgqsWTousHaKov4RzjYcN+fOeR0XD7UbBtH jH8g== MIME-Version: 1.0 X-Received: by 10.180.20.40 with SMTP id k8mr51370568wie.38.1407331645948; Wed, 06 Aug 2014 06:27:25 -0700 (PDT) In-Reply-To: References: <53E1E180.6070308@gmail.com> Date: Wed, 6 Aug 2014 18:57:25 +0530 Subject: Re: Pythonic way to iterate through multidimensional space? From: Gayathri J To: python-list@python.org Content-Type: multipart/alternative; boundary=bcaec53d57afd6885e04fff5ee30 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 103 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1407331653 news.xs4all.nl 2932 [2001:888:2000:d::a6]:56507 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:75801 --bcaec53d57afd6885e04fff5ee30 Content-Type: text/plain; charset=UTF-8 Dear Peter thanks . But thats what I was trying to say just taking them to zero by f[:,:,:] = 0.0 or using np.zeros is surely going to give me a time gain... but my example of using the itertools.product() and doing f[x] =0.0 is just to compare the looping timing with the traditional nested loops and not to distract us to the operation done inside the loop. right? On Wed, Aug 6, 2014 at 6:09 PM, Peter Otten <__peter__@web.de> wrote: > Gayathri J wrote: > > > Dear Peter > > > > Yes the f[t] or f[:,:,:] might give a marginal increase, > > The speedup compared itertools.product() is significant: > > $ python -m timeit -s 'from itertools import product; from numpy.random > import rand; N = 100; a = rand(N, N, N); r = range(N)' 'for x in product(r, > repeat=3): a[x] = 0.0' > 10 loops, best of 3: 290 msec per loop > > $ python -m timeit -s 'from itertools import product; from numpy.random > import rand; N = 100; a = rand(N, N, N); r = range(N)' 'a[:,:,:] = 0.0' > 100 loops, best of 3: 3.58 msec per loop > > But normally you'd just make a new array with numpy.zeros(). > > > but then i need > > to do further operations using the indices, in which case this wouldnt > > help > > Which is expected and also the crux of such micro-benchmarks. They distract > from big picture. > > -- > https://mail.python.org/mailman/listinfo/python-list > --bcaec53d57afd6885e04fff5ee30 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Dear Peter

thanks . But thats wha= t I was trying to say=C2=A0

just takin= g them to zero by f[:,:,:] =3D 0.0 or using np.zeros is surely going to giv= e me a time gain...
but my example of using the itertools.product() and doing f[x] = =3D0.0 is just to compare the looping timing with the traditional nested lo= ops and not to distract us to the operation done inside the loop.

right?


<= div class=3D"gmail_quote">On Wed, Aug 6, 2014 at 6:09 PM, Peter Otten <__pe= ter__@web.de> wrote:
Gayathri J wrote:

> Dear Peter
>
> Yes the f[t] or f[:,:,:] might give =C2=A0a marginal increase,

The speedup compared itertools.product() is significant:

$ python -m timeit -s 'from itertools import product; from numpy.random=
import rand; N =3D 100; a =3D rand(N, N, N); r =3D range(N)' 'for x= in product(r,
repeat=3D3): a[x] =3D 0.0'
10 loops, best of 3: 290 msec per loop

$ python -m timeit -s 'from itertools import product; from numpy.random=
import rand; N =3D 100; a =3D rand(N, N, N); r =3D range(N)' 'a[:,:= ,:] =3D 0.0'
100 loops, best of 3: 3.58 msec per loop

But normally you'd just make a new array with numpy.zeros().

> but then i need
> to do further operations =C2=A0using the indices, in which case this w= ouldnt
> help

Which is expected and also the crux of such micro-benchmarks. They di= stract
from big picture.

--
https://mail.python.org/mailman/listinfo/python-list

--bcaec53d57afd6885e04fff5ee30--