Indeksowanie warunkowe

Indeksowanie warunkowe i sliceing to dwa różne sposoby indeksowania elementów tablicy w bibliotece NumPy.

Indeksowanie warunkowe polega na wybraniu elementów tablicy za pomocą podanej maski lub podanej sekwencji indeksów. Można w ten sposób wybrać dowolne elementy tablicy, które spełniają określone warunki lub są zawarte w podanej sekwencji indeksów.

Oto kilka przykładów indeksowania warunkowego w bibliotece NumPy:

  1. Indeksowanie elementów tablicy za pomocą podanej maski:
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]

# Tworzenie maski z wartościami większymi od 5
mask = a > 5
print(mask)  # [False False False  True False  True  True False False False]

# Indeksowanie elementów tablicy za pomocą maski
b = a[mask]
print(b)  # [6 7 9]

2. Indeksowanie elementów tablicy za pomocą podanej sekwencji indeksów:

import numpy as np

# Tworzenie tablicy 1D z losowymi liczbami
a = np.random.randint(10, size=10)
print(a)  # array([8, 3, 5, 7, 5, 0, 2, 5, 0, 9])

# Indeksowanie elementów tablicy za pomocą sekwencji indeksów
b = a[[2, 3, 5]]  # pierwszy indeks to 'zero' dlatego dla wartości indeksu 2 otrzymaliśmy 5
print(b)  # array([5, 7, 0])
import numpy as np

# Tworzenie tablicy 2D z losowymi liczbami
a = np.random.randint(10, size=(4,4))
print(a)

array([[3, 7, 9, 7],
       [2, 2, 7, 8],
       [5, 5, 4, 4],
       [3, 6, 2, 9]])

# Indeksowanie elementów tablicy za pomocą sekwencji indeksów
b = a[[0, 2, 3], [2, 3, 1]]  #Rząd 0 i kolumna 2, rząd 2 i kolumna 3, rząd 3 i kolumna 1.
print(b)  

array([9, 4, 6])

import numpy as np

# Tworzenie tablicy 3D z losowymi liczbami
a = np.random.randint(10, size=(4,4,4))
print(a)
# [[[4 6 8 1]
#   [7 3 9 7]
#   [5 9 4 4]
#   [7 7 5 8]]
# 
#  [[9 3 4 8]
#   [5 0 3 7]
#   [7 4 9 7]
#   [5 9 7 5]]
# 
#  [[3 2 2 5]
#   [3 7 5 6]
#   [3 4 8 0]
#   [2 4 3 8]]
# 
#  [[4 0 9 3]
#   [6 9 4 0]
#   [9 7 5 6]
#   [4 5 5 2]]]

# Indeksowanie elementów tablicy za pomocą sekwencji indeksów
b = a[[0, 3], [1, 3], [2, 1]]
# Tabela 0, Rząd 1, Kolumna 2  --> 9
# Tabela 3, Rząd 3, Kolumna 1  --> 5
print(b)  # [9 5]