NumPy
NumPy (skrót od Numerical Python) to otwarto‑źródłowa biblioteka programistyczna dla języka Python, przeznaczona do wydajnych obliczeń numerycznych. Udostępnia wielowymiarowe tablice (ndarray), zestaw funkcji matematycznych, narzędzia do algebry liniowej, transformacji Fouriera oraz generowania losowych liczb. Dzięki swoim możliwościom stała się podstawowym elementem ekosystemu data science oraz uczenia maszynowego.
Historia
Projekt rozpoczął się w 2005 roku jako kontynuacja biblioteki Numeric. Głównym autorem jest Travis Oliphant, który połączył funkcjonalność Numeric i Numarray w jedną spójną bibliotekę. Pierwsze wydanie (wersja 1.0) pojawiło się w 2006 roku i od tego czasu jest rozwijane przez społeczność programistów.
Struktura danych
Kluczowym elementem NumPy jest obiekt ndarray – jednorodna, wielowymiarowa tablica, w której wszystkie elementy mają ten sam typ danych (np. liczby rzeczywiste, liczby całkowite, liczby zespolone). Dzięki przechowywaniu danych w pamięci w sposób ciągły, operacje na tablicach są wykonywane bardzo szybko, często na poziomie kodu w języku C.
Podstawowe funkcje
np.array()– tworzy tablicęndarrayz podanej sekwencji.np.arange()– generuje jednowymiarową tablicę z równomiernie rozmieszczonymi wartościami.np.linspace()– tworzy tablicę o określonej liczbie elementów w zadanym przedziale.np.reshape()– zmienia kształt istniejącej tablicy bez kopiowania danych.np.dot()oraznp.matmul()– operacje mnożenia macierzy.np.linalg– podmoduł zawierający funkcje algebry liniowej (np. wyznacznik, odwracanie macierzy).np.fft– funkcje transformacji Fouriera.np.random– generatory liczb losowych o różnych rozkładach.
Wydajność i optymalizacja
NumPy wykorzystuje wektoryzację: operacje na całych tablicach są wykonywane w jednym kroku, co eliminuje potrzebę pisania pętli w Pythonie. Biblioteka jest zbudowana na warstwie C oraz Fortran, co zapewnia wysoką wydajność przy jednoczesnym zachowaniu prostoty użycia w języku Python.
Integracja z innymi bibliotekami
NumPy stanowi fundament dla wielu innych popularnych pakietów:
- SciPy – rozszerza możliwości numeryczne o optymalizację, statystykę i przetwarzanie sygnałów.
- pandas – struktury danych typu DataFrame opierają się na tablicach NumPy.
- Matplotlib – biblioteka do tworzenia wykresów, przyjmuje dane w formie ndarray.
- scikit-learn – narzędzia uczenia maszynowego, które operują na macierzach NumPy.
Przykłady użycia
import numpy as np
# Tworzenie tablicy 2x3
A = np.array([[1, 2, 3],
[4, 5, 6]])
# Transpozycja
AT = A.T
# Mnożenie macierzy
B = np.arange(1, 7).reshape(3, 2)
C = np.dot(A, B)
print("A =\\n", A)
print("AT =\\n", AT)
print("C =\\n", C)
Licencja
NumPy jest rozpowszechniany na licencji BSD, co umożliwia swobodne użycie w projektach komercyjnych i otwarto‑źródłowych.
Zastosowania
Dzięki swojej wszechstronności NumPy znajduje zastosowanie w:
- analizie danych i statystyce
- symulacjach naukowych i inżynieryjnych
- przetwarzaniu obrazów i sygnałów
- uczeniu maszynowym i głębokim uczeniu
- finansach i analizie rynków
Wersje
Ostatnia stabilna wersja (stan na 2026 rok) to 1.26.4. Dzięki ciągłemu rozwojowi biblioteka regularnie otrzymuje poprawki bezpieczeństwa oraz nowe funkcje.