Guia rápido para NumPy Ufuncs

Neste artigo, discutiremos os ufuncs do NumPy em detalhes, incluindo sua sintaxe, o que são, como funcionam e como usá-los efetivamente em Python.

NumPy ufuncs – O que são?

NumPy Ufuncs são essencialmente funções que operam em arrays de maneira elementar, o que significa que eles executam a mesma operação em cada elemento de um array.

Isso é diferente das funções regulares do Python , que normalmente operam em elementos individuais, um de cada vez.

É referido como Ufunc  , que significa Universal Functions in NumPy. De acordo com Numpy Ufunc, são funções NumPy que executam operações no objeto ndarray .

O NumPy fornece uma ampla gama de ufuncs para realizar operações matemáticas e lógicas em arrays, incluindo funções aritméticas como adição , subtração , multiplicação e divisão , bem como funções trigonométricas , funções exponenciais e muito mais.

Aqui está uma breve visão geral de alguns dos ufuncs mais usados ​​no NumPy:

Funções Visão geral
np.add Adiciona dois arrays elemento a elemento.
np.subtract Subtrai dois arrays elemento a elemento.
np.multiply Multiplica duas matrizes elemento a elemento.
np.divide Divide duas matrizes elemento a elemento.
np.sin Calcula o seno de cada elemento em uma matriz.
np.cos Calcula o cosseno de cada elemento em uma matriz.
np.exp Calcula o exponencial de cada elemento em uma matriz.
np.log Calcula o logaritmo natural de cada elemento em uma matriz.


Por que usar NumPy ufuncs?

É importante observar que ufuncs são utilizados para realizar a vetorização no NumPy, o que é muito mais eficiente do que iterar sobre objetos.

Além disso, eles fornecem difusão e métodos adicionais como reduzir, acumular, etc., que são muito úteis no processo de computação.

Além disso, o ufuncs aceita os seguintes argumentos:

argumentos Visão geral
onde é uma matriz ou expressão booleana que indica onde as operações devem ocorrer.
dtype especifica o tipo de retorno do objeto.
fora a matriz de resultados para a qual copiar o valor do resultado.

 


O que é Vetorização?

No Numpy Ufunc, a técnica de transformar instruções iterativas em ações baseadas em vetores é conhecida como vetorização.

Devido ao fato de as CPUs modernas serem projetadas especificamente para tais operações, elas são mais eficientes do que antes.

Adicionar os elementos de duas listas

even list: [0, 2, 4, 6, 8, 10]
odd list: [1, 3, 5, 7, 9, 11]

É possível adicionar todos os itens ao Numpy Ufunc percorrendo as duas listas .

Também podemos utilizar o método zip() integrado do Python para somar duas listas em vez de ufunc:

Example: 

1
2
3
4
5
6
7
8
9
10
even_list = [0, 2, 4, 6, 8, 10]
odd_list = [1, 3, 5, 7, 9, 11]
list_sum = []
for x, y in zip(even_list, odd_list):
list_sum.append(x + y)
print(list_sum)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

O exemplo acima define duas listas de números: even_list e odd_list , que contêm inteiros pares e ímpares, respectivamente. O código então cria uma lista vazia chamada list_sum .

Usando um loop for , ele itera sobre os elementos de even_list e odd_list simultaneamente usando a função integrada zip() e adiciona os elementos correspondentes juntos. A soma de cada par de elementos é anexada a list_sum .

Finalmente, o código imprime os valores armazenados em list_sum. A saída será uma nova lista com o mesmo comprimento de lista_evento e lista_impar, onde cada elemento é a soma dos elementos correspondentes das duas listas originais. Abaixo está uma imagem da saída:

NumPy UfuncsComment

Agora crie duas listas reversas e adicione-as com o método zip() :

Example: 

1
2
3
4
5
6
7
8
9
10
reverse_list1 = [10, 9, 8, 7, 6]
reverse_list2 = [5, 4, 3, 2, 1]
list_sum = []
for x, y in zip(reverse_list1, reverse_list2):
list_sum.append(x + y)
print(list_sum)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Existe uma função interna do NumPy que pode ser utilizada para fazer isso, conhecida como add(x, y), que irá gerar o mesmo resultado.

No Numpy podemos utilizar a função add() na adição de duas listas:

Example: 

1
2
3
4
5
6
7
8
9
import numpy as npy
even_list = [0, 2, 4, 6, 8, 10]
odd_list = [1, 3, 5, 7, 9, 11]
list_sum = npy.add(even_list, odd_list)
print(list_sum)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Aplique o ufunc add() e some as duas listas de números reversos:

Example: 

1
2
3
4
5
6
7
8
9
import numpy as npy
reverse_list1 = [10, 9, 8, 7, 6]
reverse_list2 = [5, 4, 3, 2, 1]
list_sum = npy.add(reverse_list1, reverse_list2)
print(list_sum)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

O exemplo acima demonstra como adicionar duas listas elemento a elemento usando a função add do NumPy.

Primeiro, duas listas reverse_list1 e reverse_list2 são definidas com valores inteiros.

Em seguida, a função add da biblioteca NumPy é usada para adicionar as duas listas elemento a elemento, resultando em uma nova lista chamada list_sum.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone