
Jeśli kiedykolwiek pracowałeś z biblioteką NumPy w Pythonie, z pewnością natknąłeś się na różne funkcje operujące na tablicach. Jedną z nich jest numpy.cumprod(), która oblicza skumulowany iloczyn elementów tablicy. W tym artykule omówię, jak działa numpy.cumprod(), pokażę przykłady użycia oraz omówię praktyczne zastosowania.
Czym jest numpy.cumprod()?
Funkcja numpy.cumprod() służy do obliczania skumulowanego iloczynu wzdłuż określonej osi (axis) w tablicy NumPy. Oznacza to, że każdy element zwróconej tablicy jest iloczynem wszystkich poprzednich elementów w określonym kierunku.
Składnia numpy.cumprod()
Podstawowa składnia funkcji wygląda następująco:
numpy.cumprod(a, axis=None, dtype=None, out=None)
Gdzie:
a– wejściowa tablica NumPy.axis– określa oś, wzdłuż której obliczany jest skumulowany iloczyn (domyślnie cała tablica).dtype– opcjonalny typ danych wyniku.out– opcjonalna tablica do zapisania wyniku.
Podstawowy przykład użycia numpy.cumprod()
Rozważmy prosty przykład użycia tej funkcji:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
result = np.cumprod(arr)
print(result)
Wynik to:
[ 1 2 6 24 120]
Jak widać, każdy kolejny element tablicy wynikowej to iloczyn wszystkich poprzednich wartości.
Użycie numpy.cumprod() w tablicach wielowymiarowych
Gdy mamy tablice wielowymiarowe, możemy określić oś (axis), wzdłuż której obliczamy skumulowany iloczyn. Zobaczmy przykład:
arr = np.array([[1, 2, 3],
[4, 5, 6]])
result_axis_0 = np.cumprod(arr, axis=0)
result_axis_1 = np.cumprod(arr, axis=1)
print("Wynik dla axis=0:\n", result_axis_0)
print("Wynik dla axis=1:\n", result_axis_1)
Wynikiem będą:
Wynik dla axis=0:
[[ 1 2 3]
[ 4 10 18]]
Wynik dla axis=1:
[[ 1 2 6]
[ 4 20 120]]
W pierwszym wywołaniu (axis=0) wartości są mnożone wzdłuż kolumn, w drugim (axis=1) wzdłuż wierszy.
numpy.cumprod() z określonym typem danych
Czasami zachodzi potrzeba określenia, jakiego typu danych ma używać NumPy do przechowywania wartości. Jest to przydatne, gdy chcemy uniknąć przepełnienia liczb całkowitych:
arr = np.array([1, 2, 3, 4, 5], dtype=np.int8)
result = np.cumprod(arr, dtype=np.int64)
print("Oryginalny typ danych:", arr.dtype)
print("Nowy typ danych:", result.dtype)
Otrzymamy:
Oryginalny typ danych: int8
Nowy typ danych: int64
W ten sposób możemy kontrolować precyzję obliczeń.
Praktyczne zastosowania numpy.cumprod()
numpy.cumprod() znajduje zastosowanie w różnych dziedzinach, w tym w finansach, analizie danych i symulacjach matematycznych. Oto kilka praktycznych przykładów:
- Analiza finansowa: Obliczanie wartości portfela przy reinwestowaniu zysków.
- Modelowanie wzrostu: Symulacje demograficzne lub epidemiologiczne.
- Przetwarzanie sygnałów: Mnożenie współczynników w algorytmach filtracji.
Porównanie numpy.cumprod() i numpy.prod()
Warto porównać numpy.cumprod() z pokrewną funkcją numpy.prod(), która również operuje na iloczynie elementów:
| Funkcja | Opis |
|---|---|
numpy.cumprod() |
Zwraca tablicę skumulowanego iloczynu. |
numpy.prod() |
Zwraca pojedynczą wartość będącą całkowitym iloczynem wszystkich elementów. |
Przykład różnicy:
arr = np.array([1, 2, 3, 4, 5])
cumprod_result = np.cumprod(arr)
prod_result = np.prod(arr)
print("numpy.cumprod:", cumprod_result)
print("numpy.prod:", prod_result)
Wynik:
numpy.cumprod: [ 1 2 6 24 120]
numpy.prod: 120
Jak widać, numpy.prod() zwraca pojedynczą wartość, podczas gdy numpy.cumprod() generuje pełną tablicę wynikową.
Podsumowanie
Funkcja numpy.cumprod() w języku Python pozwala na łatwe obliczanie skumulowanego iloczynu elementów tablicy NumPy. Jest niezwykle użyteczna w analizie danych, finansach i modelowaniu matematycznym. Możliwość określenia osi oraz typu danych sprawia, że jest to wszechstronne narzędzie do pracy z dużymi zbiorami danych. Mam nadzieję, że ten artykuł pomógł Ci lepiej zrozumieć, jak działa numpy cumprod w języku Python. Przykład zastosowania pokazuje jego zalety i elastyczność.
Inny ciekawy artykuł:
Jak działa numpy cumsum w języku Python? Przykład zastosowania
Opanuj 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, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

