Jak Scipy jest open source, Ma bardzo aktywną i tętniącą życiem społeczność programistów, dzięki którym istnieje ogromna liczba modułów dla ogromnej ilości zastosowań naukowych i obliczeń dostępnych z Scipy. Niektóre z złożonych operacji matematycznych, które można wykonać za pomocą SCIPY, to:
SCIPY można porównać do większości bibliotek poleceń i standardowych, takich jak biblioteka GSL dla C ++ i Matlab. Ponieważ Scipy jest zbudowany na pakiecie Numpy, te dwa pakiety można również całkowicie zintegrować. Jeśli potrafisz wymyślić operację matematyczną, którą należy wykonać, upewnij się, że sprawdziłeś bibliotekę scipy przed wdrożeniem tego modułu samodzielnie, ponieważ w większości przypadków SCIPY ma już wszystkie operacje w pełni zaimplementowane.
Zainstaluj bibliotekę Scipy
Zainstalujmy bibliotekę Scipy, zanim przejdziemy do faktycznych przykładów i koncepcji. Istnieją dwa sposoby zainstalowania tego pakietu. Pierwszy obejmuje korzystanie z Python Pakiet Manager, PIP:
instaluj scipyDrugi sposób dotyczy Anacondy, możemy zainstalować pakiet jako:
CDED instaluj -C Anaconda ScipyPo zainstalowaniu biblioteki możemy ją zaimportować jako:
Import ScipyWreszcie, ponieważ będziemy również korzystać z Numpy (zaleca się, aby dla wszystkich operacji Numpy używamy Numpy bezpośrednio zamiast przeglądania pakietu Scipy):
Importuj NumpyMożliwe, że w niektórych przypadkach chcielibyśmy również wykreślić nasze wyniki, dla których użyjemy biblioteki Matplotlib. Wykonaj następujący import dla tej biblioteki:
importować matplotlibBędę korzystać z menedżera Anaconda do wszystkich przykładów w tej lekcji. Uruchomię notatnik Jupyter dla tego samego:
Teraz, gdy jesteśmy gotowi ze wszystkimi instrukcjami importu, aby napisać kod, zacznijmy nurkować w pakiecie Scipy z niektórymi praktycznymi przykładami.
Praca z równaniami wielomianowymi
Zaczniemy od spojrzenia na proste równania wielomianowe. Istnieją dwa sposoby, z którymi możemy zintegrować funkcje wielomianowe z naszym programem. Możemy korzystać z Poly1d klasa, która wykorzystuje współczynniki lub korzenie wielomianu do inicjalizacji wielomianu. Spójrzmy na przykład:
z Numpy Import Poly1dPo uruchomieniu tego przykładu zobaczymy następujące dane wyjściowe:
Oczywiście wielomianowa reprezentacja równania jest drukowana jako wyjście, aby wynik był dość łatwy do zrozumienia. Możemy również wykonywać różne operacje tego wielomianu, takie jak kwadratowe, znaleźć jego pochodną, a nawet rozwiązać wartość x. Spróbujmy zrobić to wszystko w następnym przykładzie:
Drukuj („kwadrat wielomian: \ n”)Po uruchomieniu tego przykładu zobaczymy następujące dane wyjściowe:
Właśnie wtedy, gdy myślałem, że to wszystko, co moglibyśmy zrobić z Scipy, przypomniałem sobie, że możemy również zintegrować wielomian. Uruchom ostateczny przykład z wielomianami:
Drukuj („Integracja wielomianu: \ n”)Liczba, którą przekazujemy, mówi pakietowi, ile razy zintegrować wielomian:
Możemy po prostu przekazać kolejną liczbę całkowitą, która mówi pakietowi, ile razy zintegrować ten wielomian.
Rozwiązywanie równań liniowych
Możliwe jest nawet rozwiązanie równań liniowych z Scipy i znalezienie ich korzeni, jeśli istnieją. Aby rozwiązać równania liniowe, reprezentujemy zestaw równań jako tablicy Numpy i ich rozwiązanie jako osobne tablice Numpy. Wizualizujmy to z przykładem, w którym robimy to samo i używamy Linalg Pakiet do znalezienia korzeni równań, oto równania, które będziemy rozwiązać:
1x + 5y = 6Rozwiążmy powyższe równania:
z scipy import LinalgPo uruchomieniu powyższego programu zobaczymy, że równanie produktu DOT daje zero wyniku, co oznacza, że korzenie, które znaleziono program, były prawidłowe:
Transformacje Fouriera z Scipy
Transformacje Fouriera pomagają nam wyrażać funkcję jako oddzielne komponenty, które składają się na tę funkcję i kieruje nas o sposób, w jaki możemy rekombinacja tych komponentów, aby odzyskać oryginalną funkcję.
Spójrzmy na prosty przykład transformacji Fouriera, w którym wykreślamy sumę dwóch cosinków za pomocą biblioteki Matplotlib:
od Scipy.FFTPACK Import FFTTutaj zaczęliśmy od zbudowania przestrzeni próbki i równania cosinus, które następnie przekształciliśmy i wykreślaliśmy. Oto dane wyjściowe powyższego programu:
Jest to jeden z dobrych przykładów, w którym widzimy, jak Scipy jest używany w złożonym równaniu matematycznym do łatwej wizualizacji rzeczy.
Wektory i matryca z scipy
Teraz, gdy znamy wiele rzeczy, do których jest zdolny, możemy być pewni, że Scipy może również współpracować z wektorami i matrycą. Matryce są ważną częścią algebry liniowej, ponieważ matryce są czymś, czego używamy do reprezentowania mapowań wektorowych.
Tak jak spojrzeliśmy na rozwiązywanie równań liniowych z Scipy, możemy reprezentować wektory z NP.szyk() Funkcje. Zacznijmy od zbudowania matrycy:
my_matrix = np.Matrix (NP.losowy.losowy ((3, 3)))Oto dane wyjściowe powyższego fragmentu:
Ilekroć mówimy o macierzach, zawsze rozmawiamy o wartościach własnych i wektorach własnych. Mówiąc prostymi słowami, wektory własne są wektorami, które po pomnożeniu matrycy nie zmieniają ich kierunku, w przeciwieństwie do większości wektorów. Oznacza to, że nawet gdy pomnożysz wektory własne z matrycą, istnieje wartość (lub wartość własna), która jest jednym z współczynników mnożenia. To znaczy:
Ax = λx.W powyższym równaniu A jest macierzą, λ jest wartością własną, a X jest wektorem. Napiszmy prosty fragment kodu, aby znaleźć wartości własne dla danego wektora:
LA, wektor = Linalg.eig (my_matrix)Po uruchomieniu tego przykładu zobaczymy następujące dane wyjściowe:
Obliczanie wyznacznika macierzy
Następną operacją, którą przeprowadzimy z Scipy, jest obliczenie wyznacznika matrycy 2-wymiarowej. Ponownie wykorzystamy matrycę, której użyliśmy w ostatnim fragmencie kodu tutaj:
Linalg.Det (my_matrix)Po uruchomieniu tego przykładu zobaczymy następujące dane wyjściowe:
W tej lekcji przyjrzeliśmy się wielu dobrym przykładom, w których Scipy może nam pomóc, przeprowadzając dla nas złożone obliczenia matematyczne z łatwym w użyciu interfejsów API i pakietów.