Vytvořte si vlastní ufunc


Jak vytvořit svůj vlastní ufunc

Chcete-li vytvořit svůj vlastní ufunc, musíte definovat funkci, jako to děláte s normálními funkcemi v Pythonu, a poté ji přidat do své knihovny NumPy ufunc pomocí frompyfunc()metody.

Metoda frompyfunc()používá následující argumenty:

  1. function - název funkce.
  2. inputs - počet vstupních argumentů (polí).
  3. outputs - počet výstupních polí.

Příklad

Vytvořte si vlastní ufunc pro přidání:

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

Zkontrolujte, zda je funkce ufunc

Zkontrolujte typ funkce, abyste zjistili, zda je ufunc nebo ne.

Ufunc by se měl vrátit <class 'numpy.ufunc'>.

Příklad

Zkontrolujte, zda je funkce ufunc:

import numpy as np

print(type(np.add))

Pokud to není ufunc, vrátí jiný typ, jako je tato vestavěná funkce NumPy pro spojení dvou nebo více polí:

Příklad

Zkontrolujte typ další funkce: concatenate():

import numpy as np

print(type(np.concatenate))

Pokud funkce není vůbec rozpoznána, vrátí chybu:

Příklad

Zkontrolujte typ něčeho, co neexistuje. To způsobí chybu:

import numpy as np

print(type(np.blahblah))

Chcete-li otestovat, zda je funkce ufunc v příkazu if, použijte numpy.ufunchodnotu (nebo np.ufuncpokud používáte np jako alias pro numpy):

Příklad

Pomocí příkazu if zkontrolujte, zda je funkce ufunc nebo ne:

import numpy as np

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