NumPy ufuncs


O que são ufuncs?

ufuncs significa "Funções Universais" e são funções NumPy que operam no ndarrayobjeto.

Por que usar ufuncs?

ufuncs são usados ​​para implementar a vetorização no NumPy, que é muito mais rápido do que iterar sobre os elementos.

Eles também fornecem transmissão e métodos adicionais, como reduzir, acumular, etc., que são muito úteis para computação.

ufuncs também aceita argumentos adicionais, como:

wherematriz booleana ou condição que define onde as operações devem ocorrer.

dtypedefinindo o tipo de retorno dos elementos.

outarray de saída onde o valor de retorno deve ser copiado.


O que é Vetorização?

A conversão de instruções iterativas em uma operação baseada em vetor é chamada de vetorização.

É mais rápido, pois as CPUs modernas são otimizadas para essas operações.

Adicionar os elementos de duas listas

lista 1: [1, 2, 3, 4]

lista 2: [4, 5, 6, 7]

Uma maneira de fazer isso é iterar em ambas as listas e, em seguida, somar cada elemento.

Exemplo

Sem ufunc, podemos usar o zip()método interno do Python:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []

for i, j in zip(x, y):
  z.append(i + j)
print(z)

NumPy tem um ufunc para isso, chamado add(x, y) que produzirá o mesmo resultado.

Exemplo

Com ufunc, podemos usar a add()função:

import numpy as np

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)

print(z)