Wykład 2 - NumPy Flashcards
NumPy to skrót od
Numerical Python
Rzecz, którą znajdziemy w NumPy związana z tablicą
ndarray
- wydajna implementacja tablic wielowymiarowych umożliwiające szybkie wykonywanie operacjali arytmetycznych i elastyczne rozgłaszanie (ang. broadcasting)
Znajdziemy ich wiele w NumPy do obliczeń
Funkcje matematyczne przeznaczone do wykonywania szybkich operacji na całych tablicach danych bez potrzeby tworzenia pętli
Jakie narzędzia w Numpy
Przeznaczone do zapisu i odczytu danych tablicowych z plików umieszczonych na dysku a także w mapowanym obszarze pamięci
Rzecz związana z algebrą z NumPy
Obsługa algebry liniowej generowania liczb losowych i transformacji Fouriera
Jaki interfejs programistyczny jest związany z NumPy
Interfejs programistyczny c przeznaczony do łączenia pakietów numpy z bibliotekami napisanymi w języku c c++ lub Fortran
Co umożliwia to że numpy jest wyposażona w prosty w użyciu interfejs programistyczny obsługujący język c
Proste przesyłanie danych zewnętrznych bibliotek napisanych w językach chińskiego poziomu dodatkowo rozwiązanie to pozwala na zwracanie przez zewnętrzne biblioteki danych do pythona w formie tablic numpy. Te możliwości sprawiły że Python stał się najpopularniejszym językiem do obudowywania starych baz kodu c c++ i fortran i zapewnienia im dynamicznego i łatwego w użyciu interfejsu
Czego sam w sobie pakiet NumPy nie zawiera
Pakiet ten nie zawiera w sobie funkcji przeznaczonych do wykonywania obliczeń naukowych czy modelowania danych ale jeżeli zrozumiesz obsługę tablic numpy a także obliczeń wykonywanych na tablicach to łatwiej będzie ci używać w efektywny sposób narzędzi korzystających ze składni zorientowanej tablicowo takich jak pandas
Możliwości pakietu NumPy związane z aplikacjami analizy danych
- szybkie operacje na tablicach
- standardowe algorytmy tablicowe jak operacje sortowania znajdowania elementów niepowtarzalnych i tworzenie zestawień
- wyrównanie danych i relacyjne operacje na danych służące do łączenia heterogenicznych zbiorów danych
- tworzenie logicznych operacji warunkowych bezpośrednio na tablicach bez potrzeby tworzenia zagnieżdżeń if elif else
- grupowe operacje na danych takie jak agregacja, transformacja, stosowanie funkcji
o ile szybciej działają algorytmy pakietu numpy niż ich odpowiedniki napisane w czystym pythonie
Ogólnie rzecz biorąc algorytmy pakietu NumPy działają od 10 do ponad 100 razy szybciej
Największa i najważniejsza cecha pakietu
Nwymiarowy obiekt tablicowy ndarray
Tak określa się operację pomiędzy tablicami o różnych rozmiarach
Rozgłaszanie (ang. Broadcasting)
Co się stanie jeżeli przypiszesz skalach do wycinka, np. arr[5:8] = 12
Wartość ta ulega wtedy propagacji - jest rozgłaszana i umieszczana w całym wybranym obszarze
Różnica między wbudowanymi w Pythona listami i tablicami a robieniem wycinków w ndarray
Przechwycone wycinki są widokami elementów oryginalnej tablicy oznacza to że dane nie są kopiowane a modyfikacja wycinków spowoduje wprowadzenie zmian w tablicy źródłowej
Dlaczego sytuacja zrobieniem wycinków tablic i tym że modyfikowanie ich wartości modyfikuje oryginalną tablicę istnieje
Ponieważ biblioteka numPy została z zaprojektowana z myślą o pracy z bardzo dużymi tablicami a więc wyobraź sobie potencjalne problemy z brakiem pamięci i niską wydajność wynikającą z ciągłego kopiowania danych