Tablice NumPy i dtypes
Proszę tworzyć obiekty ndarray, poznawać dtypes i analizować właściwości tablic.
Tablice NumPy i dtypes to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Czym jest NumPy?
NumPy udostępnia obiekt ndarray — tablicę o stałym typie i ciągłym obszarze pamięci, obsługującą operacje wektorowe o rzędy wielkości szybsze niż w przypadku list Pythona.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
print(arr * 2) # [ 2 4 6 8 10] (no Python loop)Tworzenie tablic
Typowe funkcje tworzące tablice to: np.array(), np.zeros(), np.ones(), np.arange(), np.linspace().
import numpy as np
print(np.zeros((2, 3))) # 2x3 array of 0.0
print(np.ones(5)) # [1. 1. 1. 1. 1.]
print(np.arange(0, 10, 2)) # [0 2 4 6 8]
print(np.linspace(0, 1, 5)) # [0. 0.25 0.5 0.75 1. ]dtypes
Każda tablica NumPy ma jeden dtype. Typowe wartości dtype to: int32, int64, float32, float64, bool, complex128.
import numpy as np
a = np.array([1, 2, 3]) # int64 by default
b = np.array([1.0, 2.0]) # float64
c = np.array([1, 2], dtype=np.float32)
print(a.dtype) # int64
print(c.dtype) # float32Kształt tablicy i ndim
shape to krotka określająca rozmiary poszczególnych wymiarów. ndim to liczba wymiarów. size to łączna liczba elementów.
import numpy as np
m = np.ones((3, 4))
print(m.shape) # (3, 4)
print(m.ndim) # 2
print(m.size) # 12
print(m.dtype) # float64Zmiana kształtu
reshape() zwraca widok o nowym kształcie (z tymi samymi danymi). flatten() zwraca kopię jako tablicę jednowymiarową.
import numpy as np
arr = np.arange(12)
mat = arr.reshape(3, 4)
print(mat)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(mat.flatten()) # [ 0 1 2 3 ...]Rzutowanie typów
Za pomocą arr.astype(dtype) można przekonwertować tablicę na inny typ. Ta metoda zawsze zwraca kopię.
import numpy as np
arr = np.array([1, 2, 3])
float_arr = arr.astype(np.float64)
print(float_arr) # [1. 2. 3.]
print(float_arr.dtype) # float64Tablice losowe
Tablice losowe można generować za pomocą np.random: o rozkładzie jednostajnym, normalnym lub zawierające liczby całkowite.
import numpy as np
rng = np.random.default_rng(seed=42) # reproducible
print(rng.random(5)) # 5 uniform [0,1)
print(rng.standard_normal(3)) # 3 normal(0,1)
print(rng.integers(1, 10, 4)) # 4 ints [1,10)Sprawdzanie pamięci tablicy
itemsize podaje liczbę bajtów na element, a nbytes — łączną liczbę bajtów.
import numpy as np
arr = np.zeros(1_000_000, dtype=np.float64)
print(arr.itemsize) # 8
print(arr.nbytes) # 8_000_000 (8 MB)
small = arr.astype(np.float32)
print(small.nbytes) # 4_000_000 (4 MB)np.empty i np.full
np.empty alokuje pamięć bez inicjalizowania jej (szybko). np.full wypełnia tablicę stałą wartością.
import numpy as np
e = np.empty((2,3)) # uninitialised — random garbage values
f = np.full((2,3), fill_value=7)
print(f)
# [[7 7 7]
# [7 7 7]]Kopia a widok
Wycinanie fragmentu tablicy NumPy zwraca widok (bez tworzenia kopii). Modyfikowanie widoku modyfikuje oryginał. Aby utworzyć niezależną tablicę, należy użyć .copy().
import numpy as np
arr = np.array([1, 2, 3, 4])
view = arr[1:3]
view[0] = 99
print(arr) # [ 1 99 3 4] — original changed!
copy = arr[1:3].copy()
copy[0] = 0
print(arr) # unchangedTablice strukturalne
Tablice strukturalne przechowują heterogeniczne dane (podobnie jak struktura C) w pojedynczym obiekcie ndarray z nazwanymi polami.
import numpy as np
dt = np.dtype([('name', 'U10'), ('age', np.int32), ('score', np.float64)])
people = np.array([
('Alice', 30, 95.5),
('Bob', 25, 87.3),
], dtype=dt)
print(people['name']) # ['Alice' 'Bob']Szybkie sprawdzenie
Co zwraca arr.reshape(3, 4)?
Podsumowanie
Obiekt ndarray biblioteki NumPy to tablica o stałym typie i ciągłym obszarze pamięci. Najważniejsze atrybuty to: shape, dtype, ndim, nbytes. Wycinanie zwraca widoki; aby uzyskać niezależność, należy użyć .copy(). W celu oszczędzania pamięci należy wybrać najmniejszy wystarczający dtype.
Często zadawane pytania
Czy lekcja „Tablice NumPy i dtypes” jest bezpłatna?
Tak — pełny tekst „Tablice NumPy i dtypes” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Tablice NumPy i dtypes”?
Proszę tworzyć obiekty ndarray, poznawać dtypes i analizować właściwości tablic. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Tablice NumPy i dtypes”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tablice NumPy i dtypes
- Operacje na tablicach i broadcasting
- Indeksowanie, wycinanie i zaawansowane indeksowanie
- Algebra liniowa z NumPy