numpy.frompyfunc() in Python

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:

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.



Improved By : Akanksha_Rai