
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ść.
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, 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.