[Numpy-discussion] iterate over multiple arrays
Robert Kern
robert.kern@gmail....
Mon Sep 12 13:41:38 CDT 2011
On Mon, Sep 12, 2011 at 01:52, David Froger <david.froger@gmail.com> wrote:
> Hy everybody,
>
> I'm wondering what is the (best) way to apply the same function to multiple
> arrays.
>
> For example, in the following code:
>
> from numpy import *
>
> def f(arr):
> return arr*2
>
> a = array( [1,1,1] )
> b = array( [2,2,2] )
> c = array( [3,3,3] )
> d = array( [4,4,4] )
>
> a = f(a)
> b = f(b)
> c = f(c)
> d = f(d)
>
> I would like to replace :
>
> a = f(a)
> b = f(b)
> c = f(c)
> d = f(d)
This is usually the best thing to do for few variables and simple
function calls. If you have many more variables, you should be keeping
them in a list or dict instead of individual named variables. If you
have a complicated expression, wrap it in a function.
You could also do something like this:
a,b,c,d = map(f, [a,b,c,d])
but it's harder to understand what is going on that just using four
separate lines and no easier to maintain.
Don't use eval() or locals().
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
-- Umberto Eco
More information about the NumPy-Discussion
mailing list