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.pyt...@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@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



-- 
Kind regards Nick
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to