encyklopedia.space

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ę ndarray z 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() oraz np.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.

Patrz także