numpy.frompyfunc(func, nin, nout) function allows to create an arbitrary Python function as Numpy ufunc (universal function).
Parameters:
func: [A python function object ] An arbitrary python function
nin: [int] Number of input arguments to that function.
nout: [int] Number of objects returned by that function.
Return: A Numpy universal function object.
For example, abs_value = numpy.frompyfunc(abs, 1, 1) will create a ufunc that will return the absolute values of array elements.
Code #1:
Python3
# Python code to demonstrate the # use of numpy.frompyfunc import numpy as np # create an array of numbers a = np.array([ 34 , 67 , 89 , 15 , 33 , 27 ]) # python str function as ufunc string_generator = np.frompyfunc( str , 1 , 1 ) print ( "Original array-" , a) print ( "After conversion to string-" , string_generator(a)) |
Original array- [34 67 89 15 33 27] After conversion to string- ['34' '67' '89' '15' '33' '27']
Code #2:
Python3
# Python code to demonstrate # user-defined function as ufunc import numpy as np # create an array of numbers a = np.array([ 345 , 122 , 454 , 232 , 334 , 56 , 66 ]) # user-defined function to check # whether a no. is palindrome or not def fun(x): s = str (x) return s[:: - 1 ] = = s # 'check_palindrome' as universal function check_palindrome = np.frompyfunc(fun, 1 , 1 ) print ( "Original array-" , a) print ( "Checking of number as palindrome-" , check_palindrome(a)) |
Original array- [345 122 454 232 334 56 66] Checking of number as palindrome- [False False True True False False True]
Note: This custom ufunc created using frompyfunc always accept a ndarray as an input argument and also return a ndarray object as output.