
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 zastosowaniaOpanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.