O NumPy, uma biblioteca fundamental em Python para computação numérica, oferece estruturas de dados eficientes, como arrays multidimensionais, e um vasto conjunto de funções para manipulação e análise de dados. Entre essas funções, numpy.cumsum()
se destaca por sua capacidade de calcular somas cumulativas de maneira eficaz.
Essa função tem um papel crucial em diversas aplicações, como:
- Acompanhamento de totais acumulados em dados de séries temporais.
- Determinação da distribuição cumulativa de variáveis aleatórias.
- Cálculo de médias móveis.
- Implementação de operações de convolução.
Sintaxe da Função
A estrutura da função numpy.cumsum()
é a seguinte:
numpy.cumsum(array, axis=None, dtype=None, out=None)
Onde:
array
: O array de entrada sobre o qual a soma cumulativa será calculada.axis
: O eixo ao longo do qual a soma cumulativa será efetuada. O valor padrão (None
) considera o array como uma sequência linear.dtype
: Define o tipo de dados do array resultante. Por padrão (None
), herda o tipo do array original.out
: Um array opcional onde o resultado pode ser armazenado, evitando a criação de um novo array.
Parâmetros Adicionais
A função numpy.cumsum()
oferece parâmetros adicionais para flexibilizar o seu uso:
nanpolicy
: Especifica como os valores NaN (Not a Number) devem ser tratados, com as seguintes opções:propagate
: Valores NaN são propagados para o resultado.raise
: Um erroValueError
é levantado se um NaN for encontrado.omit
: Valores NaN são ignorados no cálculo da soma.
exclusive
: Quando definido comoTrue
, o primeiro elemento do array é excluído da soma cumulativa.reverse
: SeTrue
, a soma cumulativa é calculada em ordem inversa, do último para o primeiro elemento.
Resultado
A função numpy.cumsum()
retorna um array com a mesma forma do array de entrada, onde cada elemento representa a soma cumulativa até aquele ponto ao longo do eixo especificado.
Exemplos Práticos de Uso
A seguir, alguns exemplos para ilustrar o uso da função numpy.cumsum()
:
Soma Cumulativa em Array Unidimensional
Calculando a soma cumulativa de um array simples:
import numpy as np array = np.array([1, 2, 3, 4, 5]) resultado = np.cumsum(array) print(resultado)
Saída:
[ 1 3 6 10 15]
Soma Cumulativa em Array Bidimensional
Aplicando a soma cumulativa em um array bidimensional, ao longo do primeiro eixo:
array = np.array([[1, 2, 3], [4, 5, 6]]) resultado = np.cumsum(array, axis=0) print(resultado)
Saída:
[[1 2 3] [5 7 9]]
Tratamento de Valores NaN
Demonstrando como ignorar valores NaN no cálculo da soma cumulativa:
array = np.array([1, 2, np.nan, 4, 5]) resultado = np.cumsum(array, nanpolicy='omit') print(resultado)
Saída:
[ 1 3 3 7 12]
Considerações Finais
A função numpy.cumsum()
é uma ferramenta valiosa para realizar somas cumulativas em arrays NumPy, oferecendo flexibilidade e opções para atender a diversas necessidades em análise de dados. Sua capacidade de lidar com valores NaN e trabalhar em múltiplas dimensões a torna indispensável em diversas aplicações.
Perguntas e Respostas Frequentes
1. Qual a diferença entre numpy.cumsum() e numpy.sum() ? |
numpy.cumsum() calcula somas acumuladas, enquanto numpy.sum() calcula a soma total dos elementos. |
2. Como calculo a soma cumulativa inversa? | Use o parâmetro reverse=True ao chamar numpy.cumsum() . |
3. Como lidar com NaN usando numpy.cumsum() ? |
O parâmetro nanpolicy controla o tratamento de valores NaN ('omit' para ignorar). |
4. Posso usar numpy.cumsum() em arrays multidimensionais? |
Sim, definindo o parâmetro axis para o eixo desejado. |
5. Posso salvar o resultado em um array já existente? | Sim, use o parâmetro out para especificar um array existente. |
6. Qual o tipo de dados do resultado de numpy.cumsum() ? |
Por padrão, o mesmo tipo do array de entrada, mas pode ser alterado com dtype . |
7. Como calcular a soma cumulativa ponderada? | Multiplique o array pelo array de pesos e use numpy.cumsum() . |
8. Qual a complexidade computacional de numpy.cumsum() ? |
A complexidade é O(n), onde n é o número de elementos no array. |