Jak działa numpy cumsum w języku Python? Przykład zastosowania

Jak działa numpy cumsum w języku Python? Przykład zastosowania
„`html

W świecie obliczeń numerycznych i analizy danych biblioteka NumPy jest absolutnie niezastąpiona. Jednym z jej przydatnych narzędzi jest funkcja numpy.cumsum(), która pozwala obliczać skumulowaną sumę wartości w tablicy. Właśnie o niej dzisiaj opowiem – sprawdzimy, jak działa, do czego można jej użyć i jakie parametry warto znać.

Czym jest numpy.cumsum()?

Funkcja numpy.cumsum() oblicza skumulowaną sumę elementów wzdłuż określonej osi tablicy. Oznacza to, że każda kolejna wartość wyniku jest sumą wszystkich wcześniejszych wartości z danej tablicy. Można to przedstawić na prostym przykładzie:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
result = np.cumsum(arr)

print(result)
# Output: [ 1  3  6 10 15 ]

Jak widać, wynik to nowa tablica, w której:

  • pierwszy element to 1 (czyli 1),
  • drugi element to 1 + 2 = 3,
  • trzeci element to 3 + 3 = 6,
  • czwarty element to 6 + 4 = 10,
  • piąty element to 10 + 5 = 15.

Najważniejsze parametry numpy.cumsum()

Funkcja numpy.cumsum() ma kilka istotnych parametrów, które pozwalają na dokładniejsze dopasowanie jej działania do naszych potrzeb.

Parametr Opis
axis Określa oś, wzdłuż której zostanie obliczona skumulowana suma. Domyślnie None (1D).
dtype Typ danych wynikowej tablicy. Przydatne, jeśli chcemy zmienić domyślny typ wyników.
out Opcjonalna tablica do zapisania wyniku, zamiast tworzenia nowej tablicy.

Skumulowana suma w dwuwymiarowej tablicy

Jeżeli mamy tablicę wielowymiarową, możemy użyć parametru axis, aby określić kierunek sumowania.

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Sumowanie wzdłuż osi 0 (kolumny)
result_axis0 = np.cumsum(arr_2d, axis=0)

# Sumowanie wzdłuż osi 1 (wiersze)
result_axis1 = np.cumsum(arr_2d, axis=1)

print("Suma skumulowana wzdłuż osi 0:\n", result_axis0)
print("Suma skumulowana wzdłuż osi 1:\n", result_axis1)

Wyniki będą wyglądać następująco:

Suma skumulowana wzdłuż osi 0:
[[ 1  2  3]
 [ 5  7  9]]

Suma skumulowana wzdłuż osi 1:
[[ 1  3  6]
 [ 4  9 15]]

Jak widać:

  • W przypadku axis=0 – sumowanie odbywa się „w dół” kolumnami.
  • W przypadku axis=1 – sumowanie odbywa się wzdłuż wierszy.

Przydatne zastosowania numpy.cumsum()

Funkcja numpy.cumsum() znajduje szerokie zastosowanie w analizie danych i przetwarzaniu sygnałów. Oto kilka praktycznych przykładów:

1. Analiza finansowa

Jeśli analizujemy strumień przychodów lub kosztów w czasie, skumulowana suma pokaże nam, jak te wartości narastają:

przychody = np.array([100, 200, -50, 300, -100])
skumulowany_zysk = np.cumsum(przychody)

print(skumulowany_zysk)
# Output: [100 300 250 550 450]

2. Przetwarzanie sygnałów

W obróbce dźwięku czy analizy czasowej można używać skumulowanej sumy do wykrywania trendów w sygnałach.

3. Analiza danych sportowych

Jeżeli mamy wyniki punktowe drużyny w kolejnych meczach, możemy zobaczyć, jak zmieniała się ich forma w trakcie sezonu:

punkty = np.array([3, 1, 0, 3, 3, 1, 0])
skumulowana_punktacja = np.cumsum(punkty)

print(skumulowana_punktacja)
# Output: [ 3  4  4  7 10 11 11]

Podsumowanie

Funkcja numpy.cumsum() to potężne narzędzie do analizy danych, które pozwala na szybkie obliczenia skumulowanej sumy w tablicach jedno- i wielowymiarowych. Dzięki możliwości określenia osi oraz typu danych można ją dopasować do różnych zastosowań.

Jeśli potrzebujesz analizy trendów, finansów, sportu czy przetwarzania sygnałów, warto się nią zainteresować. Zdecydowanie jedno z tych narzędzi, które warto znać, pracując z biblioteką NumPy w języku Python.

„` Inny ciekawy artykuł: Jak działa numpy unique w języku Python? Przykład zastosowania
KajoDataSpace