Crea il tuo ufunc


Come creare il tuo ufunc

Per creare il tuo ufunc, devi definire una funzione, come fai con le normali funzioni in Python, quindi aggiungerla alla tua libreria NumPy ufunc con il frompyfunc()metodo.

Il frompyfunc()metodo accetta i seguenti argomenti:

  1. function - il nome della funzione.
  2. inputs - il numero di argomenti di input (array).
  3. outputs - il numero di array di output.

Esempio

Crea il tuo ufunc per l'aggiunta:

import numpy as np

def myadd(x, y):
  return x+y

myadd = np.frompyfunc(myadd, 2, 1)

print(myadd([1, 2, 3, 4], [5, 6, 7, 8]))

Controlla se una funzione è un ufunc

Controllare il tipo di una funzione per verificare se è un ufunc o meno.

Un ufunc dovrebbe tornare <class 'numpy.ufunc'>.

Esempio

Controlla se una funzione è un ufunc:

import numpy as np

print(type(np.add))

Se non è un ufunc, restituirà un altro tipo, come questa funzione NumPy incorporata per unire due o più array:

Esempio

Controlla il tipo di un'altra funzione: concatenate():

import numpy as np

print(type(np.concatenate))

Se la funzione non viene affatto riconosciuta, restituirà un errore:

Esempio

Controlla il tipo di qualcosa che non esiste. Questo produrrà un errore:

import numpy as np

print(type(np.blahblah))

Per verificare se la funzione è un ufunc in un'istruzione if, usa il numpy.ufuncvalore (o np.ufuncse usi np come alias per numpy):

Esempio

Usa un'istruzione if per verificare se la funzione è un ufunc o meno:

import numpy as np

if type(np.add) == np.ufunc:
  print('add is ufunc')
else:
  print('add is not ufunc')