[Numpy-discussion] element-wise array segmental function operation?

Nick Papior Andersen nickpapior at gmail.com
Mon Mar 23 02:49:43 EDT 2015


You can do:

vfun = np.vectorize(fun)
vfun([20,50,75])

that should work, note the abundant options available for denoting the
vectorized arrays in "vectorize".
Otherwise you could do nested where calls.


2015-03-23 7:46 GMT+01:00 oyster <lepto.python at gmail.com>:

> Hi, all
> I want to know wether there is a terse way to apply a function to
> every array element, where the function behaves according to the
> element value.
> for example
> [code]
> def fun(v):
>     if 0<=v<60:
>         return f1(v)    #where f1 is a function
>     elif 60<=v<70:
>         return f2(v)
>     elif 70<=v<80:
>         return f3(v)
>     ...and so on...
> [/code]
>
> for 'a=numpy.array([20,50,75])', I hope to get numpy.array([f1(20),
> f1(50), f3(75)])
>
> thanks in advance
>
> Lee
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



-- 
Kind regards Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20150323/f63f3d6b/attachment.html>


More information about the NumPy-Discussion mailing list