numpy.frompyfunc() en Python

La función numpy.frompyfunc(func, nin, nout) permite crear una función Python arbitraria como Numpy ufunc (función universal).

Parámetros:  
func: [Un objeto de función de Python] Una función de Python arbitraria 
nin: [int] Número de argumentos de entrada para esa función. 
nout: [int] Número de objetos devueltos por esa función.
Retorno: un objeto de función universal Numpy.

Por ejemplo, abs_value = numpy.frompyfunc(abs, 1, 1) creará un ufunc que devolverá los valores absolutos de los elementos de la array.

Código #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))
Producción: 

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

 

Código #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))
Producción: 

Original array- [345 122 454 232 334  56  66]
Checking of number as palindrome- [False False True True False False True]

 

Nota: este ufunc personalizado creado con frompyfunc siempre acepta un ndarray como argumento de entrada y también devuelve un objeto ndarray como salida.
 

Publicación traducida automáticamente

Artículo escrito por Tanvi_Garg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *