NumPy ufuncs
O que são ufuncs?
ufuncs significa "Funções Universais" e são funções NumPy que operam no ndarray
objeto.
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:
where
matriz booleana ou condição que define onde as operações devem ocorrer.
dtype
definindo o tipo de retorno dos elementos.
out
array 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)