Ściągawka NumPy

Nov 27 2022
Potrzebujesz więc szybkiego spojrzenia na NumPy, które pozwoli Ci pracować w praktyce? Ten artykuł jest właśnie tym, czego potrzebujesz! Pierwsze kroki NumPy to naukowy pakiet obliczeniowy w Pythonie. Zawiera predefiniowane funkcje dla algebry liniowej, transformacji Fouriera i macierzy.

Potrzebujesz więc szybkiego spojrzenia na NumPy, które pozwoli Ci pracować w praktyce? Ten artykuł jest właśnie tym, czego potrzebujesz!

Rozpoczęcie pracy

NumPy to naukowy pakiet obliczeniowy w Pythonie. Zawiera predefiniowane funkcje dla algebry liniowej, transformacji Fouriera i macierzy. NumPy jest zwykle używany w aplikacjach Data Science.

Aby rozpocząć, najpierw upewnij się, że masz w systemie Python i NumPy. Sposób, w jaki to zrobisz, zależy od twojego systemu i preferowanego IDE, ale polecam Anacondę. Dzięki podstawowej instalacji Anacondy możesz po prostu przejść do terminala i uruchomić „conda install numpy” i voila!

Teraz utwórzmy plik example.py , z którym będziemy mogli rozpocząć pracę.

Uwaga: gdybyśmy mieli stworzyć projekt zamiast pojedynczego przykładowego pliku do pracy, musielibyśmy po prostu utworzyć katalog i znajdujący się w nim plik __init__.py .

Powinieneś dodać następujący wiersz na początku pliku, aby móc pracować z NumPy w pliku.

importuj numpy jako np

Uwaga: generalnie importujemy go jako np, abyśmy nie musieli wpisywać numpy za każdym razem, gdy wywołujemy funkcję z NumPy. Pamiętaj, że chociaż można to zmienić, np jest ogólną konwencją.

Następnie możesz uruchomić kod w przykładowym pliku, po prostu przechodząc do terminala i uruchamiając polecenie:

python przykład.py

Lista kontra tablica

Będziemy często używać tablic w naszych operacjach NumPy, więc lepiej wyjaśnić jedną rzecz: listy i tablice różnią się w Pythonie.

Za pomocą tablic można deklarować struktury wielowymiarowe, takie jak macierze, i wykonywać w nich operacje numeryczne, ale nie dotyczy to prostych starych list. Dlatego NumPy w dużej mierze opiera się na tablicach.

Listy mogą być przypisane do wartości bez konieczności ich deklarowania, ale tablice nie. Aby więc zdefiniować tablicę, musisz wykonać następujące czynności:

exampleArray = np.arrray([10, 15, 20]) // jednowymiarowa tablica

Lub możesz zdefiniować tablicę wielowymiarową jako:

przykładTablica2 = np.tablica([10, 15, 20], [50, 100, 150], [1, 2, 3])

Możesz wywoływać elementy w tablicy jako:

przykładTablica2 [1] // zwraca [50, 100, 150]

przykładTablica2 [1] [0]// zwraca 50

Metody

Poniżej znajdziesz najbardziej podstawowe funkcje, które są powszechnie używane podczas pracy z NumPy. Chociaż jest ich wiele, o wiele więcej, poniższe wystarczą, aby zacząć.

Metody tworzenia macierzy

  • np.arange(0, 10): Tworzy jednowymiarową tablicę z liczbami od 0 do 9 jako elementami.
  • np.arange(0, 10, 3): Tworzy jednowymiarową tablicę z liczbami od 0 do 10 przeskakującymi co trzecią. Zwraca tablicę z elementami 0,3,6,9.
  • np.zeros(3): Tworzy tablicę składającą się z 3 elementów z wartością 0 dla każdego elementu.
  • np.ones(3): Tworzy tablicę składającą się z 3 elementów z wartością 1 dla każdego elementu.
  • np.linspace(0,20,5): Bierze 5 liczb od 0 do 20 z równymi krokami pomiędzy nimi. Zwraca tablicę elementów 0, 5, 10, 15, 20. Pamiętaj, że gdybyśmy powiedzieli, że wybierz 6 elementów, elementy byłyby zmiennoprzecinkowe zamiast liczb całkowitych, aby zapewnić równe odstępy między nimi.
  • np.eye(3): Tworzy macierz tożsamości z 3 kolumnami i 3 wierszami. Wartości ukośne zwracają wszystkie 1, a wszystkie inne wartości zwracają 0.
  • np.random.randn(5): Tworzy jednowymiarową tablicę z 5 liczbami losowymi jako elementami. Liczby mogą być typu całkowitego i/lub zmiennoprzecinkowego, ujemne i/lub dodatnie.
  • np.random.randn(5,5): Tworzy macierz z 5 wierszami i 5 kolumnami z 25 losowymi wartościami jako elementami.
  • np.random.randint(1, 10, 2): Zwraca dwie liczby losowe, które są większe niż 1 i mniejsze niż 10.
  • myArray.reshape(5,5): Pobiera jednowymiarową tablicę o nazwie myArray i zwraca ją jako macierz z 5 wierszami i 5 kolumnami. Pamiętaj, że jeśli w tablicy nie ma wystarczającej liczby elementów, w przykładowym przypadku 5 x 5 = 25 elementów, spowoduje to błąd i nie zadziała. Ta metoda nie zmieni samej tablicy, ale po prostu zwróci zmienioną wersję tablicy.
  • myArray.max(): Zwraca największą liczbę spośród elementów tablicy liczbowej.
  • myArray.min(): Zwraca najmniejszą liczbę spośród elementów tablicy liczbowej.
  • myArray.argmax(): Zwraca indeks największej liczby w elementach tablicy liczb.
  • myArray.argmin(): Zwraca indeks najmniejszej liczby w elementach tablicy liczb.
  • myArray.shape: Zwraca kształt tablicy. Jeśli tablica jest jednowymiarowa i zawiera 10 elementów, zwróci (10, ). Jeśli tablica jest macierzą składającą się z 5 kolumn i 6 wierszy, zwróci (5,6). Pamiętaj, że nie jest to funkcja, ale atrybut, więc nie ma nawiasów podczas wywoływania kształtu.
  • myArray[5]: Zwraca element z tablicy o numerze indeksu 5
  • myArray[3:5]: Zwraca elementy o numerach indeksu od 3 do 5, w tym element o indeksie 3, ale bez indeksu 5.
  • myArray[3:5] = -3: Zmienia wartość elementów między indeksami 3 i 5 na -3.
  • myArray[:] = 30: Zmienia wartość wszystkich elementów w tablicy na 30 jeden po drugim.
  • myArray = 30: Zmienia typ tablicy myArray z tablicy na liczbę całkowitą i ustawia jej wartość na 30.
  • newArray = myArray.copy(): Tworzy kopię myArray i ustawia ją na newArray. Zauważ, że gdybyś nie użył metody .copy() , zobaczyłbyś, że wszystkie zmiany wprowadzone w tablicy newArray odzwierciedlają się również w tablicy myArray.

Zadeklarujmy macierz jako myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] ).

  • myMatrix[0]: Zwraca element z indeksem wiersza 0, który jest tablicą. Dlatego zwraca [5, 10, 15].
  • myMatrix[0] [1]: Zwraca element z indeksem kolumny 1 i indeksem wiersza 0, więc w tym przypadku zwraca wartość 10.
  • myMatrix[0,1]: Zwraca element z indeksem kolumny 1 i indeksem wiersza 0, więc w tym przypadku zwraca wartość 10.
  • myMatrix[1, 1:]: Pobiera wiersz z indeksem 1 jak zwykle, ale zwraca elementy z indeksami kolumn zaczynającymi się od 1 (w tym 1, ponieważ splice zawsze działa z Pythonem), więc w tym przypadku zwraca [2, 3].
  • myMatrix[[0,1] ]: Zwraca wartość indeksów 0 i 1, czyli w naszym przypadku zwraca ( [5, 10, 15] , [1, 2, 3] ).

Zdefiniujmy tablicę myArray do pracy jako myArray = [ 5,10,15,20]

  • myArray > 10: Zwraca tablicę prawdziwych i fałszywych, sądząc po warunku, więc w naszym przypadku zwraca [false, false, true, true]. Zauważ, że tihs nie zmienia oryginalnej wartości myArray, ale zamiast tego tworzy nową awway.
  • mojaTablica [mojaTablica > 10]: Zwraca nową tablicę z elementami, które faktycznie spełniają warunek [15, 20].
  • myArray + myArray: Zwraca tablicę, w której wartości są sumowane indeks po indeksie i umieszczane w odpowiednim indeksie, w naszym przypadku zwraca [10, 20, 30, 40].
  • myArray — myArray: Zwraca tablicę, w której wartości są odejmowane indeks po indeksie i umieszczane w odpowiednim indeksie, w naszym przypadku zwraca [0, 0, 0, 0].
  • myArray/myArray: Zwraca tablicę, w której wartości są dzielone indeks po indeksie i umieszczane w odpowiednim indeksie, w naszym przypadku zwraca [1,1,1,1]. Zauważ, że gdyby w jakimkolwiek indeksie było 0 jako wartość, ponieważ liczby nie można podzielić przez 0, spowodowałoby to wyświetlenie ostrzeżenia i powrót nan dla tego indeksu, ale pozostałe indeksy zostałyby podzielone jak zwykle.
  • np.sqrt(myArray): Zwraca tablicę z pierwiastkiem kwadratowym, jeśli każda wartość ma ten sam indeks. Więc jeśli myArray to [25, 16, 36], funkcja zwróci [ 5, 4, 6].