0Pricing
Learn AI with Python · Lekcja

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])   # 50

Wycinanie 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])   # 1

Wycinanie 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 block

Maski 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

  1. Tworzenie tablic i ich właściwości
  2. Indeksowanie, wycinanie i indeksowanie zaawansowane
  3. Broadcasting i operacje zwektoryzowane
  4. Algebra liniowa z NumPy
← Powrót do Learn AI with Python