numpy.frompyfunc() in Python

numpy.frompyfunc(func, nin, nout) function allows to create an arbitary Python function as Numpy ufunc (universal function).

Parameters:
func: [A python function object ] An arbitary 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:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to demonstrate the 
# use of numpy.frompyfunc 
import numpy as np
  
# create an array of numners
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))

chevron_right


Output:

Original array- [34 67 89 15 33 27]
After conversion to string- ['34' '67' '89' '15' '33' '27']

 
Code #2:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


Output:

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.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.