Przejdź do treści

SciPy

logo SciPy

Wprowadzenie

SciPy (Scientific Python) zawiera wiele naukowych i numerycznych algorytmów i funkcji, które rozszerzają NumPy. Podczas gdy NumPy koncentruje się na wydajnych operacjach tablicowych, SciPy udostępnia zbiór modułów dla różnych dziedzin naukowych.

SciPy zapewnia wysokopoziomowe narzędzia do algebry liniowej, interpolacji, statystyki, przetwarzania obrazów i wiele więcej. Razem z NumPy są uznawane za podstawowe biblioteki do prowadzenia obliczeń naukowych w Pythonie.

Dostępność

Podobnie jak NumPy, biblioteka SciPy jest dostępna tylko dla języka Python. Można go łatwo zainstalować za pomocą menedżerów pakietów, takich jak pip lub conda.

Szczegóły

SciPy udostępnia moduły nazwane wg zastosowania. Np. scipy.integrate posiada funkcje odpowiedzialne za całkowanie. Funkcje SciPy to w większości algorytmy, które wywołują funkcje z bibliotek napisanych w C, C++ lub Fortranie. Przykładowo funkcja scipy.integrate.quad służy do obliczania całek oznaczonych i w swoim kodzie zawiera odwołania do biblioteki QUADPACK napisanej w Fortranie.

Moduły SciPy:

  • constants — Zawiera nieprzybliżone stałe fizyczne (np. prędkość światła) i matematyczne (np. liczba pi).
  • datasets — Zawiera różnego rodzaju zbiory danych, które można wykorzystać przykładowo do testowania algorytmów uczenia maszynowego (np. digits zawiera zdjęcia ręcznie napisanych cyfr arabskich).
  • linalg — Zawiera funkcje do algebry liniowej, jak np. operacje na macierzach, dekompozycja macierzy, rozwiązywanie układów równań czy znalezienie macierzy odwrotnej.
  • spatial — Zawiera funkcje działające na danych przestrzennych takich jak geometria wyrażona we współrzędnych kartezjańskich. Przykładowo: funkcja distance.cdist() przyjmuje tylko 2-wymiarowe tablice o kształcie (n, d) oraz (m, d) jako input. Zwraca dystanse pomiędzy wszystkimi elementami w postaci 2-wymiarowej tablicy o kształcie (n, m).
  • stats — Zawiera bardzo wiele funkcjonalności takich jak rozkłady prawdopodobieństwa, funkcje takie jak miara rozkładu (summary statistics) i testy statystyczne. Jest to rozległy zasób narzędzi statystycznych.
  • cluster — Zawiera algorytmy do grupowania danych w klastry (np. cluster.vq.kmeans() korzysta z algorytmu k-średnich (k-mean clustering) - wykorzystywany m.in w uczeniu maszynowym do dzielenia danych, które nie są możliwe do oddzielenia w oczywisty sposób).
  • integrate — Zawiera funkcje służące do całkowania i rozwiązywania zwyczajnych równań różniczkowych.
  • interpolate — Zawiera różne algorytmy interpolacji danych.
  • io — Zawiera proste funkcje pozwalające na odczytywanie i zapisywanie danych w różnych formatach
  • ndimage — Zawiera funkcje służące do obróbki zdjęć jak nakładanie filtrów, skalowanie zdjęcia czy konwolucja.
  • odr — Zawiera funkcje odpowiedzialne za dopasowywanie modeli matematycznych do danych. Jest to rodzaj regresji stosowanej, gdy chce się uwzględnić niepewność danych.
  • optimize — Zawiera funkcje, które są iterowane tak długo aż rozwiązanie się uzbieżni poniżej zadanego kryterium. Przykłady to: znalezienie pierwiastków wielomianu, dopasowanie krzywej do danych czy znalezienie minimum lokalnego funkcji.
  • fft — Zawiera warianty transformaty Fouriera.
  • signal — Zawiera funkcje pozwalające na obróbkę sygnału np. plików audio.
  • sparse — Zawiera funkcjonalności do pracy z macierzami rzadkimi. Zawiera submoduł sparse.linalg, który dostarcza funkcji algebry liniowej zoptymalizowanych do pracy na macierzach rzadkich.

Informacje o wydaniu

Obecna wersja 1.11.4 została wydana w listopadzie 2023. Biblioteka SciPy jest regularnie rozwijana, nowe wersje ukazują się kilka razy w roku. SciPy jest dostępny open source. Zarówno pip oraz conda pozwalają na instalację SciPy.

Linki


Ostatnia aktualizacja: 7 grudnia 2023