Indeksowanie, wycinanie i indeksowanie zaawansowane
Podstawowe wycinanie, maskowanie boolowskie, indeksowanie zaawansowane i np.where() do wyboru warunkowego.
Indeksowanie, wycinanie i indeksowanie zaawansowane to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 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 Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Podstawy indeksowania
Tablice NumPy używają indeksowania od zera, podobnie jak listy języka Python. Indeksy ujemne liczą elementy od końca.
import numpy as np
a = np.array([10, 20, 30, 40, 50])
print(a[0]) # 10
print(a[-1]) # 50Wycinanie w 1D
Wycinki używają składni start:stop:step i zwracają widok (a nie kopię), dlatego modyfikacja wycinka zmienia oryginał.
print(a[1:4]) # [20 30 40]
print(a[::2]) # [10 30 50]
view = a[1:3]
view[0] = 99
print(a) # [10 99 30 40 50]Indeksowanie 2D [row, col]
W przypadku tablic 2D należy indeksować za pomocą pojedynczych nawiasów kwadratowych zawierających obie współrzędne: m[row, col]. Jest to czytelniejsze i szybsze niż m[row][col].
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m[1, 2]) # 6
print(m[0, 0]) # 1Wycinanie wierszy i kolumn
Dwukropek pozwala wybrać całą oś. m[:, 1] wybiera kolumnę 1 ze wszystkich wierszy.
print(m[0, :]) # first row: [1 2 3]
print(m[:, 1]) # second col: [2 5 8]
print(m[1:, :2]) # bottom-left blockMaski boolowskie
Porównanie tworzy tablicę wartości boolowskich o takim samym kształcie. Indeksowanie za pomocą tej maski zachowuje tylko elementy znajdujące się w pozycjach True.
a = np.array([5, 12, 7, 20, 3])
mask = a > 8
print(mask) # [False True False True False]
print(a[mask]) # [12 20]Łączenie warunków
Z operatorami elementowymi & (and) i | (or) należy używać nawiasów. Słowa kluczowe Pythona and/or NIE działają na tablicach.
print(a[(a > 4) & (a < 15)]) # [ 5 12 7]Przypisywanie przez maskę
Można zapisywać wartości w pozycjach wybranych przez maskę, aby czyścić dane w miejscu, na przykład ograniczając wartości odstające do górnego progu.
a = np.array([5, 12, 7, 20, 3])
a[a > 10] = 10
print(a) # [ 5 10 7 10 3]Zaawansowane indeksowanie za pomocą tablic
Przekazanie tablicy (lub listy) indeksów całkowitych pozwala wybrać dowolne elementy w dowolnej kolejności, również z powtórzeniami. Zwracana jest kopia, a nie widok.
a = np.array([10, 20, 30, 40, 50])
idx = [4, 0, 2, 2]
print(a[idx]) # [50 10 30 30]Zaawansowane indeksowanie w 2D
Podaj dwie tablice indeksów, aby wybrać określone pary (wiersz, kolumna). W tym przykładzie wybieramy narożniki leżące na przekątnej.
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
rows = [0, 2]
cols = [0, 2]
print(m[rows, cols]) # [1 9]Wybór warunkowy za pomocą np.where
np.where(cond, x, y) zwraca elementy z x tam, gdzie warunek ma wartość True, a w przeciwnym razie elementy z y — jest to zwektoryzowane if-else.
a = np.array([-2, 5, -7, 3])
print(np.where(a < 0, 0, a)) # [0 5 0 3] (clip negatives)np.where do znajdowania indeksów
Wywołane z jednym argumentem np.where(cond) zwraca indeksy pozycji, w których warunek jest spełniony.
a = np.array([10, 20, 30, 40])
print(np.where(a > 15)) # (array([1, 2, 3]),)Szybki test
Sprawdź swoje umiejętności indeksowania.
Podsumowanie
Techniki wyboru elementów:
- Podstawowe indeksowanie i wycinanie (wycinki są widokami)
- Dostęp 2D za pomocą
m[row, col], a do całej osi za pomocą: - Maski boolowskie z operatorami
&i| - Zaawansowane indeksowanie za pomocą tablic indeksów (zwraca kopię)
np.where(cond, x, y)do zwektoryzowanego if-else
Często zadawane pytania
Czy lekcja „Indeksowanie, wycinanie i indeksowanie zaawansowane” jest bezpłatna?
Tak — pełny tekst „Indeksowanie, wycinanie i indeksowanie zaawansowane” 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 Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Indeksowanie, wycinanie i indeksowanie zaawansowane”?
Podstawowe wycinanie, maskowanie boolowskie, indeksowanie zaawansowane i np.where() do wyboru warunkowego. Ćwiczysz Learn AI with Python 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ąć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python 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 2 z 4.
Ile czasu zajmuje lekcja „Indeksowanie, wycinanie i indeksowanie zaawansowane”?
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 Learn AI with Python?
Tak. Każda lekcja Learn AI with Python 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
- Tworzenie tablic i ich właściwości
- Indeksowanie, wycinanie i indeksowanie zaawansowane
- Broadcasting i operacje zwektoryzowane
- Algebra liniowa z NumPy