How to create your own NumPy ufunc in Python?
This article demonstrate how you can create your own ufuncs in python.
How to create your own NumPy ufunc in Python?
1. How to create your own ufunc in python?
step 1: Define a function, as you do with normal functions in python.
step 2: Add it to your NumPy ufunc library with the frompyfunc() method.
Syntax:
frompyfunc(function , inputs, outputs)
Parameters:
Function: The name of the function.
Inputs: number of input arrays.
Outputs: the number of output arrays.
For Example:
import numpy as np
def myMultiplier( x,y,z):
return x*y*z
myMultiplier =np.frompyfunc(myMultiplier, 3, 1)
print(myMultiplier([10,20,30] , [20,30,40] ,[30,40,50]))
output:[6000 24000 60000]
Note: check if a function is ufunc or not using type(function)
a ufunc should return <class‘numpy.ufunc’ > .
For Example:
import numpy as np
def myMultiplier( x,y,z):
return x*y*z
#type of myMultiplier function
print(type(myMultiplier))
#output:<class 'function'>
myMultiplier =np.frompyfunc(myMultiplier, 3, 1)
print(type(myMultiplier))
#after adding myMultiplier function to ufunc the type of myMultiplier is changed as
# <class 'numpy.ufunc'>