Crie seu próprio ufunc


Como criar seu próprio ufunc

Para criar seu próprio ufunc, você precisa definir uma função, como você faz com funções normais em Python, e então adicioná-la à sua biblioteca NumPy ufunc com o frompyfunc()método .

O frompyfunc()método recebe os seguintes argumentos:

  1. function - o nome da função.
  2. inputs - o número de argumentos de entrada (matrizes).
  3. outputs - o número de matrizes de saída.

Exemplo

Crie seu próprio ufunc para adição:

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

Verifique se uma função é um ufunc

Verifique o tipo de uma função para verificar se é um ufunc ou não.

Um ufunc deve retornar <class 'numpy.ufunc'>.

Exemplo

Verifique se uma função é um ufunc:

import numpy as np

print(type(np.add))

Se não for um ufunc, ele retornará outro tipo, como esta função NumPy integrada para unir dois ou mais arrays:

Exemplo

Verifique o tipo de outra função: concatenate():

import numpy as np

print(type(np.concatenate))

Se a função não for reconhecida, ela retornará um erro:

Exemplo

Verifique o tipo de algo que não existe. Isso produzirá um erro:

import numpy as np

print(type(np.blahblah))

Para testar se a função é um ufunc em uma instrução if, use o numpy.ufuncvalor (ou np.ufuncse você usar np como um alias para numpy):

Exemplo

Use uma instrução if para verificar se a função é ufunc ou não:

import numpy as np

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