Wycinanie fragmentów tablic w Numpy w Pythonie
Podając numery indeksów można pobierać z tablicy większe jej fragmenty, podając index początku i końca wycinka oddzielony dwukropkiem, według składni [start:end].
Start oznacza początek krojenia tablicy,
end koniec krojenia, przy czym ostatni element zostanie pominięty.
Możemy również użyć składni [start:end:step], gdzie
start oznacza początek krojenia tablicy,
end koniec krojenia, przy czym ostatni element zostanie pominięty, i
step oznacza przeskok pomiędzy
elementami tablicy.
Jeśli nie podamy numeru indeksu na starcie, wówczas domyślnie jest 0.
Przykład 1 - krojenie tablicy od numeru indeksu 1 do 5.
import numpy as np
x=np.array([1,2,3,4])
print(x[1:3])
[2 3] #wynik, pokroiliśmy tablicę od indeksu 1 do indeksu 3. Wynik zawiera indeks początkowy i wyklucza indeks końcowy.
Przykład 2 - krojenie tablicy od indeksu domyślnego czyli 0 do indeksu numer 3.
import numpy as np
x=np.array([1,2,3,4])
print(x[:3])
[1 2 3] #wynik, krojenie tablicy od indeksu domyślnie 0 do indeksu 3
Przykład 3 - krojenie tablicy od indeksu 3 do końca tablicy
import numpy as np
x=np.array([1,2,3,4])
print(x[3:])
[4] #wynik, krojenie tablicy od indeksu nr 3 do końca tablicy
Przykład 4 - krojenie tablicy z użyciem indeksów ujemnych
import numpy as np
x=np.array([1,2,3,4,5,6,7])
print(x[-4:-2])
[4 5] #wynik, wycięliśmy fragment tablicy wykorzystując indeksy ujemne
Przykład 5 - użycie wartości step, czyli wartości przeskoku podczas wydzielenia fragmentu z tablicy
import numpy as np
x=np.array([1,2,3,4,5,6,7])
print(x[1:4:2])
[2 4] #wynik, przeskok co drugi indeks tablicy
Przykład 6 - użycie wartości step, bez podania wartości start i end
import numpy as np
x=np.array([1,2,3,4,5,6,7])
print(x[::2])
[1 3 5 7] #wynik
Krojenie tablic 2-wymiarowych
Przykład 1- z pierwszej tablicy wytnij elementy od indeksu 1 do 3
import numpy as np
x=np.array([[5,6,7,8,9],[10,11,12,13,14]])
print(x[0,1:3])
[6 7] #wynik, otrzymaliśmy fragment tablicy pierwszej
Przykład 2- z obu tablic pobierz element z indeksem numer 4
import numpy as np
x=np.array([[5,6,7,8,9],[10,11,12,13,14]])
print(x[0:2,4])
[ 9 14] #wynik