
Pracując z danymi w języku Python, często potrzebujemy wydajnych struktur do przechowywania i manipulowania danymi liczbowymi. Tutaj z pomocą przychodzi biblioteka NumPy i jej fundamentalna struktura – numpy.array()
. Jest to potężne narzędzie, które przewyższa listy Pythona pod względem szybkości i funkcjonalności.
Czym jest numpy.array()?
Obiekt numpy.array()
to podstawowa struktura tablicowa w bibliotece NumPy. W odróżnieniu od list Pythona, tablica NumPy jest jednorodna, co oznacza, że wszystkie elementy muszą być tego samego typu. Dzięki temu możliwe są znacznie szybsze operacje na danych oraz oszczędność pamięci.
Podstawowa składnia numpy.array()
Aby utworzyć tablicę NumPy, wystarczy zaimportować bibliotekę i użyć funkcji numpy.array()
, przekazując do niej standardową listę Pythona.
import numpy as np
# Tworzenie tablicy jednowymiarowej
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# Output: [1 2 3 4 5]
Tablicę NumPy można również utworzyć z listy wielowymiarowej, co pozwala na wygodne przechowywanie macierzy.
# Tworzenie tablicy dwuwymiarowej (macierzy)
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
# Output:
# [[1 2 3]
# [4 5 6]]
Podstawowe cechy numpy.array()
Obiekt numpy.array()
oferuje wiele przydatnych właściwości:
- ndim – liczba wymiarów tablicy
- shape – kształt tablicy (liczba wierszy i kolumn)
- size – liczba wszystkich elementów w tablicy
- dtype – typ danych przechowywanych w tablicy
print(arr_2d.ndim) # Output: 2
print(arr_2d.shape) # Output: (2, 3)
print(arr_2d.size) # Output: 6
print(arr_2d.dtype) # Output: int64 (lub inny w zależności od systemu)
Dlaczego warto używać numpy.array() zamiast list Pythona?
NumPy został zaprojektowany do obsługi dużych zbiorów danych i zapewnia optymalizację, której brak w standardowych listach Pythona. Główne zalety tablic NumPy to:
- Lepsza wydajność – operacje na numpy.array() są znacznie szybsze niż na listach Pythona.
- Mniejsze zużycie pamięci – NumPy przechowuje dane w sposób bardziej efektywny.
- Zaawansowane operacje matematyczne – NumPy oferuje mnóstwo funkcji do pracy z danymi numerycznymi.
Dla porównania sprawdźmy, ile pamięci zajmuje lista i tablica NumPy:
import numpy as np
import sys
# Lista Pythona
py_list = [1, 2, 3, 4, 5]
np_array = np.array(py_list)
print(sys.getsizeof(py_list)) # Rozmiar listy w bajtach
print(sys.getsizeof(np_array)) # Rozmiar tablicy NumPy w bajtach
Wynik pokazuje, że tablica NumPy zajmuje mniej pamięci niż lista, co staje się jeszcze bardziej widoczne przy dużych zbiorach danych.
Operacje na numpy.array()
Tablice NumPy pozwalają na wykonywanie wielu operacji matematycznych bez konieczności stosowania pętli. Oto kilka przykładów:
# Mnożenie każdego elementu tablicy przez 2
arr = np.array([1, 2, 3, 4, 5])
print(arr * 2)
# Output: [ 2 4 6 8 10]
# Suma wszystkich elementów tablicy
print(np.sum(arr))
# Output: 15
# Średnia wartości w tablicy
print(np.mean(arr))
# Output: 3.0
Indeksowanie i modyfikowanie wartości
Indeksowanie w NumPy działa bardzo podobnie jak w listach Pythona, ale oferuje również bardziej zaawansowane metody.
arr = np.array([10, 20, 30, 40, 50])
# Dostęp do pojedynczego elementu
print(arr[2]) # Output: 30
# Zakres indeksów (slicing)
print(arr[1:4]) # Output: [20 30 40]
# Modyfikacja elementu
arr[2] = 99
print(arr) # Output: [10 20 99 40 50]
Tworzenie tablic specjalnych
NumPy oferuje także wygodne funkcje do tworzenia tablic o określonych wartościach:
Funkcja | Opis | Przykład |
---|---|---|
np.zeros() |
Tablica wypełniona zerami | np.zeros((3,3)) |
np.ones() |
Tablica wypełniona jedynkami | np.ones((2,2)) |
np.eye() |
Macierz jednostkowa | np.eye(3) |
np.arange() |
Ciag liczb o określonym kroku | np.arange(0,10,2) |
# Przykład użycia:
zeros_array = np.zeros((3, 3))
ones_array = np.ones((2, 2))
identity_matrix = np.eye(3)
print(zeros_array)
# Output: 3x3 tablica zer
print(ones_array)
# Output: 2x2 tablica jedynek
print(identity_matrix)
# Output: Macierz jednostkowa 3x3
Podsumowanie
Tablice NumPy to jedno z najważniejszych narzędzi w języku Python do przetwarzania danych. Oferują one lepszą wydajność, mniejsze zużycie pamięci i bogaty zestaw operacji matematycznych w porównaniu do zwykłych list Pythona. Jeśli zajmujesz się analizą danych, uczeniem maszynowym lub obliczeniami naukowymi – numpy.array()
jest niezastąpionym narzędziem!
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.