numpy.cumsum() em Python
Introdução
O NumPy é uma biblioteca Python de alto nível projetada para trabalhar com arrays multidimensionais. Oferece uma ampla gama de funções para manipulação, análise e visualização de dados. Uma das funções mais importantes do NumPy é o numpy.cumsum()
, que é usado para calcular a soma cumulativa ao longo de um array.
Esta função é particularmente útil em várias aplicações, incluindo:
* Cálculo de totais acumulados em séries temporais
* Encontrar a distribuição cumulativa de uma variável aleatória
* Computar médias móveis
* Realizar convoluções
Sintaxe
A sintaxe do numpy.cumsum()
é a seguinte:
python
numpy.cumsum(array, axis=None, dtype=None, out=None)
Onde:
* array
: O array ao longo do qual a soma cumulativa deve ser calculada.
* axis
: O eixo ao longo do qual a soma cumulativa deve ser realizada. O valor padrão é None
, que calcula a soma cumulativa ao longo do eixo achatado do array.
* dtype
: O tipo de dados do array de saída. O valor padrão é None
, que retorna um array do mesmo tipo de dados do array de entrada.
* out
: Um array opcional no qual armazenar os resultados. Se nenhum array for fornecido, um novo array é criado.
Parâmetros Adicionais
Além dos parâmetros obrigatórios, o numpy.cumsum()
oferece vários parâmetros adicionais para personalizar seu comportamento:
* nanpolicy
: Determina como os valores NaN (Not a Number) são tratados. Os valores padrão para nanpolicy
são:
* propagate
: Propagar valores NaN.
* raise
: Gerar uma exceção ValueError se um valor NaN for encontrado.
* omit
: Ignorar valores NaN.
* exclusive
: Se True
, exclui o primeiro elemento do array da soma cumulativa.
* reverse
: Se True
, calcula a soma cumulativa reversa, começando pelo último elemento do array.
Retorno
O numpy.cumsum()
retorna um array com o mesmo formato do array de entrada, contendo a soma cumulativa ao longo do eixo especificado.
Usando o numpy.cumsum()
O numpy.cumsum()
é fácil de usar. Aqui estão alguns exemplos para demonstrar seu uso:
Soma Cumulativa ao Longo de um Eixo**
Vamos calcular a soma cumulativa dos elementos de um array de uma dimensão:
python
import numpy as np
array = np.array([1, 2, 3, 4, 5])
result = np.cumsum(array)
print(result)
Saída:
[ 1 3 6 10 15]
Soma Cumulativa ao Longo de um Eixo Específico**
Para calcular a soma cumulativa ao longo de um eixo específico, especifique o eixo no parâmetro axis
:
python
array = np.array([[1, 2, 3], [4, 5, 6]])
result = np.cumsum(array, axis=0)
print(result)
Saída:
[[1 3 6]
[5 7 9]]
Manipulando Valores NaN**
Por padrão, o numpy.cumsum()
propaga valores NaN. Para ignorar valores NaN, use nanpolicy='omit'
:
python
array = np.array([1, 2, np.nan, 4, 5])
result = np.cumsum(array, nanpolicy='omit')
print(result)
Saída:
[ 1 3 3 7 12]
Conclusão
O numpy.cumsum()
é uma função poderosa que permite calcular facilmente a soma cumulativa ao longo de um array multidimensional. Sua versatilidade e parâmetros personalizáveis o tornam uma ferramenta essencial para várias aplicações de processamento de dados.
Perguntas Frequentes
1. Qual é a diferença entre numpy.cumsum()
e numpy.sum()
?
O numpy.cumsum()
calcula a soma cumulativa ao longo de um array, enquanto o numpy.sum()
calcula a soma total do array.
2. Como posso calcular a soma cumulativa reversa?
Defina o parâmetro reverse
como True
ao chamar o numpy.cumsum()
.
3. Como posso lidar com valores NaN no numpy.cumsum()
?
Use o parâmetro nanpolicy
para especificar como os valores NaN devem ser tratados.
4. Posso usar o numpy.cumsum()
em arrays multidimensionais?
Sim, o numpy.cumsum()
pode ser usado em arrays multidimensionais. Especifique o eixo ao longo do qual a soma cumulativa deve ser calculada usando o parâmetro axis
.
5. Posso armazenar os resultados do numpy.cumsum()
em um array existente?
Sim, você pode passar um array existente para o parâmetro out
para armazenar os resultados.
6. Qual é o tipo de dados do array de saída do numpy.cumsum()
?
O tipo de dados do array de saída é o mesmo do array de entrada por padrão. Você pode especificar um tipo de dados diferente usando o parâmetro dtype
.
7. Como posso calcular a soma cumulativa de pesos?
Para calcular a soma cumulativa de pesos, multiplique o array pelo array de pesos e use o numpy.cumsum()
.
8. Qual é o custo computacional do numpy.cumsum()
?
O custo computacional do numpy.cumsum()
é O(n), onde n é o número de elementos no array.