📧 Dołącz do newslettera Machine LearningZapisuję się!

Podstawy NumPy – przewodnik od zupełnych podstaw

Kacper Sieradziński4/18/20252 min czytania
Podstawy NumPy – przewodnik od zupełnych podstaw

NumPy to fundament naukowych i analitycznych obliczeń w Pythonie. Jego wydajność i prostota sprawiają, że jest niezbędny dla każdego, kto pracuje z danymi liczbowymi. Poniższy przewodnik wprowadzi Cię w świat tablic, operacji wektorowych i zaawansowanych funkcji matematycznych.


Dlaczego NumPy?

  • Wydajność: Operacje na tablicach NumPy są nawet 100x szybsze niż na standardowych listach Pythona dzięki optymalizacji w języku C.
  • Uniwersalność: Integruje się z Pandas, SciPy, Scikit-learn i innymi bibliotekami.
  • Pamięć: Tablice NumPy zajmują mniej pamięci niż listy Pythona.

Przykład porównania wydajności:

import time # Lista Pythona py_list = list(range(1_000_000)) start = time.time() [x ** 2 for x in py_list] print("Python list:", time.time() - start) # ~0.15s # Tablica NumPy np_array = np.arange(1_000_000) start = time.time() np_array ** 2 print("NumPy array:", time.time() - start) # ~0.002s

Indeksowanie i cięcie tablic

Podstawowe indeksowanie:

arr = np.array([10, 20, 30, 40, 50]) print(arr[0]) # 10 print(arr[1:4]) # [20, 30, 40]

Tablice 2D:

matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(matrix[1, 2]) # 6 (drugi wiersz, trzecia kolumna) print(matrix[:, 1]) # [2, 5, 8] (druga kolumna ze wszystkich wierszy)

Warunkowe indeksowanie:

arr = np.array([5, 12, 8, 3, 15]) print(arr[arr > 10]) # [12, 15]

Przekształcanie tablic

Zmiana kształtu:

arr = np.arange(1, 7) # [1, 2, 3, 4, 5, 6] matrix = arr.reshape(2, 3) """ Wynik: [[1 2 3] [4 5 6]] """

Spłaszczanie:

matrix.flatten() # [1, 2, 3, 4, 5, 6]

Transpozycja:

matrix.T """ [[1 4] [2 5] [3 6]] """

Operacje matematyczne

Broadcasting – operacje na tablicach różnych rozmiarów:

arr = np.array([1, 2, 3]) print(arr * 5) # [5, 10, 15] print(arr + [0.5]) # [1.5, 2.5, 3.5] (automatyczne rozszerzenie)

Funkcje uniwersalne (ufuncs):

np.sqrt(arr) # [1. , 1.41421356, 1.73205081] np.sin(arr) # [0.84147098, 0.90929743, 0.14112001] np.log(arr) # [0. , 0.69314718, 1.09861229]

Statystyka i algebra liniowa

Podstawowe statystyki:

data = np.array([2, 4, 6, 8]) print("Średnia:", np.mean(data)) # 5.0 print("Odchylenie standardowe:", np.std(data)) # 2.236 print("Wariancja:", np.var(data)) # 5.0

Mnożenie macierzy:

a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) print(np.dot(a, b)) """ [[19 22] [43 50]] """

Zapisywanie i wczytywanie danych

Zapis do pliku:

arr = np.arange(10) np.save('moje_dane.npy', arr)

Wczytanie z pliku:

loaded_arr = np.load('moje_dane.npy')

Eksport do CSV:

np.savetxt('dane.csv', arr, delimiter=',')

Case study: Analiza wyników egzaminów

Przykład praktycznego zastosowania:

wyniki = np.array([68, 75, 82, 90, 77, 84, 91, 62, 79, 85]) # Filtruj wyniki powyżej średniej srednia = np.mean(wyniki) lepsze_wyniki = wyniki[wyniki > srednia] print(f"Liczba osób powyżej średniej ({srednia:.1f}): {len(lepsze_wyniki)}") # Normalizacja do skali 0-100 znormalizowane = (wyniki - np.min(wyniki)) / (np.max(wyniki) - np.min(wyniki)) * 100 print("Znormalizowane wyniki:", znormalizowane)

Podsumowanie

NumPy to niezwykle potężne narzędzie, które rewolucjonizuje pracę z danymi numerycznymi w Pythonie. Dzięki opanowaniu podstawowych operacji na tablicach, funkcji matematycznych i technik indeksowania, zyskujesz możliwość efektywnej analizy dużych zbiorów danych. Kluczowe korzyści to:

  • Optymalizacja pamięci: Tablice NumPy zajmują nawet 4x mniej miejsca niż listy Pythona.
  • Szybkość: Operacje wektorowe pozwalają uniknąć powolnych pętli.
  • Integracja: NumPy stanowi podstawę dla bibliotek typu Pandas czy TensorFlow.

Aby pogłębić wiedzę, warto eksperymentować z rzeczywistymi danymi i odkrywać zaawansowane funkcje takie jak broadcasting, maskowanie czy operacje na tensorach wyższych wymiarów.

Tagi:

#NumPy#Python#Nauka programowania#Analiza danych#Podstawy

Zapisz się na nasz newsletter

Otrzymuj regularne aktualizacje, specjalne oferty i porady od ekspertów, które pomogą Ci osiągnąć więcej w krótszym czasie.