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