Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling lambda functions with iteration over a numpy array of shape `(n,)`

Tags:

python

numpy

Let's define a function f such that f = lambda x1,x2, ... , xn: x1 + x2 and an numpy array a = np.array([a1,a2, ... , an]) of length n. How can I apply f using as arguments the components of a by iterating over every element of it?

Notice that I don't want to apply f this way: y = f(a[0], .... a[n]) but using a for loop (something like this: y = lambda(u for u in a)).

like image 406
bolzano Avatar asked Nov 01 '22 12:11

bolzano


1 Answers

You want the splat unpack trick:

>>> a = np.array(['hello ', 'world', 'blah', 'blah', 'blah'])
>>> f = lambda *args: args[0] + args[1]
>>> f(*a)
'hello world'
like image 155
wim Avatar answered Nov 12 '22 23:11

wim