Indeksowanie warunkowe i sliceing to dwa różne sposoby indeksowania elementów tablicy w bibliotece NumPy.
Sliceing w bibliotece NumPy polega na wybraniu kolejnych elementów tablicy za pomocą podanego zakresu indeksów. Można w ten sposób wybrać elementy tablicy w postaci podtablicy o określonym kształcie.
Składnia sliceing wygląda następująco: a[start:stop:step]
, gdzie:
a
to tablica, z której chcemy wybrać elementystart
to indeks początkowy zakresu (domyślnie 0)stop
to indeks końcowy zakresu (domyślnie długość tablicy)step
to odstęp pomiędzy elementami (domyślnie 1)
Nie zawsze trzeba używać zapisu z dwoma dwukropkami:
- Aby wybrać kolejne elementy tablicy, należy podawać indeks początkowy oraz indeks końcowy oddzielone dwukropkiem (:). Indeksy są niemodyfikowalne i oznaczają miejsca w tablicy, w których sliceing ma się rozpocząć i zakończyć.
- Aby wybrać elementy tablicy z określonym krokiem, należy podawać indeks początkowy, indeks końcowy i krok oddzielone dwukropkiem (:). Krok określa, co ile elementów ma być wybierany. Na przykład, jeśli chcemy wybrać co drugi element tablicy, należy ustawić krok na 2.
- Aby wybrać wszystkie elementy tablicy, można pominąć indeks początkowy i końcowy lub ustawić je na None.
- Aby wybrać elementy tablicy od końca, należy użyć indeksu ujemnego.
Przykłady:
- Wybranie wszystkich elementów tablicy 1D:
import numpy as np
# Tworzenie tablicy 1D z losowymi liczbami
a = np.random.randint(10, size=10)
print(a) # [8 5 2 9 1 7 6 5 0 5]
# Wybranie wszystkich elementów tablicy
b = a[:]
print(b) # [8 5 2 9 1 7 6 5 0 5]
2. Wybranie elementów tablicy 2D w kształcie podtablicy 3×2:
import numpy as np
# Tworzenie tablicy 2D z losowymi liczbami
a = np.random.randint(10, size=(4,4))
print(a)
#Rząd0 [[8 5 7 7]
#Rząd1 [2 9 3 3]
#Rząd2 [1 7 6 5]
#Rząd3 [0 5 8 6]]
# Wybranie elementów tablicy w kształcie podtablicy 3x2
b = a[:3, 1:3] #wybierz rzędy 0,1,2 i kolumny 1,2.
print(b)
# [[5 7]
# [9 3]
# [7 6]]
3. Wybranie co drugiego elementu tablicy 1D:
import numpy as np
# Tworzenie tablicy 1D z losowymi liczbami
a = np.random.randint(10, size=10)
print(a) # [2 3 4 6 3 7 9 5 5 1]
# Wybranie co drugiego elementu tablicy
b = a[::2]
print(b) # [2 4 3 9 5]
4. Odwrócenie kolejności elementów tablicy 1D:
import numpy as np
# Tworzenie tablicy 1D z losowymi liczbami
a = np.random.randint(10, size=10)
print(a) # [2 3 4 6 3 7 9 5 5 1]
# Odwrócenie kolejności elementów tablicy
b = a[::-1]
print(b) # [1 5 5 5 9 7 3 6 4 3 2]