Registros – NumPy Ufunc

Os logs ufunc do NumPy referem-se ao logaritmo natural dos elementos da matriz de entrada calculados usando as funções universais do NumPy (ufuncs).

O objetivo deste artigo é guiá-lo pelos logs NumPy Ufunc e como você pode usá-los em computação científica e análise de dados.



Logs Ufunc NumPy

Em termos de logs Numpy Ufunc, NumPy fornece uma variedade de funções que você pode utilizar para gerar logs na base 2, e e 10.

Como parte de nossa discussão, também veremos como podemos implementar um Ufunc personalizado para obter logs de qualquer base.

Quando um log não pode ser calculado, todas as funções de log incluirão -inf ou inf na saída.

Base 2 Registros

Para calcular um log na base 2, utilize a função log2() .

No array mrx_arr abaixo, recupere o log na base 2 de cada um dos dígitos:

Example: 

1
2
3
4
5
6
import numpy as npy
mrx_arr = npy.arange(1, 6)
print(npy.log2(mrx_arr))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Com a função organize() defina o intervalo das duas matrizes, encontre o valor de log da matriz na base 2 e aplique a função add() :

Example: 

1
2
3
4
5
6
7
8
9
10
import numpy as npy
mrx_arr = npy.arange(1,5)
ample_arr = npy.arange(6,10)
mrx_arr = npy.log2(mrx_arr)
ample_arr = npy.log2(ample_arr)
sum_arr = npy.add(mrx_arr, ample_arr)
print(sum_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : a função de arranjo(1, 6) fornece uma matriz de números inteiros variando de 1 (incluído) a 6 (não incluído).

Base 10 Registros

Se você estiver procurando por logs Numpy Ufunc, poderá utilizar a função log10() para registrar os dados no nível de base 10.

Utilizando a matriz mrx_arr abaixo, calcule o log na base 10 de cada um dos dígitos da seguinte maneira:

Example: 

1
2
3
4
5
6
import numpy as npy
mrx_arr = npy.arange(1, 6)
print(npy.log10(mrx_arr))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A função organize() define o intervalo das duas matrizes, calcula o valor de log da matriz na base 10 e executa a função add():

Example: 

1
2
3
4
5
6
7
8
9
10
import numpy as npy
mrx_arr = npy.arange(1,5)
ample_arr = npy.arange(6,10)
mrx_arr = npy.log10(mrx_arr)
ample_arr = npy.log10(ample_arr)
sum_arr = npy.add(mrx_arr, ample_arr)
print(sum_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Base E Registros

Você pode calcular o log na base e chamando a função log() .

Utilizando o seguinte array, confira o log na base e de todos os itens:

Example: 

1
2
3
4
5
6
import numpy as npy
mrx_arr = npy.arange(1, 6)
print(npy.log(mrx_arr))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Calcule a soma de mrx_arr e ample_arr após implementar as funções organize() e log() :

Example: 

1
2
3
4
5
6
7
8
9
10
import numpy as npy
mrx_arr = npy.arange(1,5)
ample_arr = npy.arange(6,10)
mrx_arr = npy.log(mrx_arr)
ample_arr = npy.log(ample_arr)
sum_arr = npy.add(mrx_arr, ample_arr)
print(sum_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Log em qualquer base

Não há nenhuma função no NumPy que possa manipular o log em qualquer base, então podemos chamar a função frompyfunc() em conjunto com a função interna math.log() com dois parâmetros de entrada e um parâmetro de retorno:

Implemente a função frompyfunc() :

Example: 

1
2
3
4
5
6
7
from math import log
import numpy as npy
mrx_log = npy.frompyfunc(log, 2, 1)
print(mrx_log(10, 30))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Aplique a função add() junto com a função frompyfunc():

Example: 

1
2
3
4
5
6
7
8
9
from math import log
import numpy as npy
mrx_log = npy.frompyfunc(log, 2, 1)
ample_log = npy.frompyfunc(log, 2, 1)
sum_arr = npy.add(mrx_log(25,5), ample_log(11,19))
print(sum_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

1 – A função log() é importada do módulo math.

2 – Dois ufuncs são criados usando numpy.frompyfunc() . Ambos mrx_log e ample_log são criados para receber dois argumentos de entrada e retornar uma matriz com uma única saída. A função log() é especificada como a função a ser aplicada por esses ufuncs.

3 – A função numpy.add() é chamada com dois argumentos:

  • O resultado da aplicação do mrx_log ufunc aos valores escalares 25 e 5.
  • O resultado da aplicação de ample_log ufunc aos valores escalares 11 e 19.

A função numpy.add() adiciona os dois arrays resultantes elemento a elemento para produzir um único array de saída.

4 – A saída do código é o array produzido por numpy.add() .


Benefícios dos logs NumPy Ufunc

O uso de logs ufunc NumPy tem vários benefícios, incluindo:

  • Os logs NumPy ufunc são implementados em C e otimizados para execução rápida, tornando-os muito mais rápidos do que executar as mesmas operações em Python puro.
  • Os logs NumPy ufunc operam em elementos em arrays, permitindo o uso eficiente da memória, evitando a necessidade de loops e arrays temporários.
  • Ele permite operações vetorizadas, que podem realizar cálculos em arrays inteiros de uma só vez, facilitando a escrita de código conciso e legível.
  • É compatível com uma ampla gama de outras bibliotecas de computação científica, tornando-as uma ferramenta versátil para análise de dados e pesquisa científica.
  • Os logs NumPy ufunc fornecem resultados de alta precisão para cálculos matemáticos, tornando-os adequados para aplicações científicas complexas que exigem resultados precisos.
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