Функция where
Функция where возвращает элементы из одного из двух массивов
в зависимости от выполнения условия. Первым параметром функция
принимает условие, вторым - массив значений для True, третьим -
массив значений для False. Если указать только условие, функция
возвращает индексы элементов, удовлетворяющих условию.
Синтаксис
np.where(condition, [x, y])
Пример
Давайте выберем элементы из массива на основе условия:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.where(arr > 3, arr, 0)
print(res)
Результат выполнения кода:
[0 0 0 4 5]
Пример
Давайте заменим отрицательные числа на положительные:
import numpy as np
arr = np.array([-5, -2, 0, 3, 8])
res = np.where(arr < 0, -arr, arr)
print(res)
Результат выполнения кода:
[5 2 0 3 8]
Пример
Давайте вернем индексы элементов, удовлетворяющих условию:
import numpy as np
arr = np.array([10, 25, 30, 15, 40])
res = np.where(arr > 20)
print(res)
Результат выполнения кода:
(array([1, 2, 4]),)
Пример
Давайте применим функцию к двумерному массиву:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res = np.where(arr % 2 == 0, 'even', 'odd')
print(res)
Результат выполнения кода:
[['odd' 'even' 'odd']
['even' 'odd' 'even']]
Пример
Давайте используем функцию с различными массивами для True и False:
import numpy as np
cond = np.array([True, False, True, False])
x = np.array([10, 20, 30, 40])
y = np.array([100, 200, 300, 400])
res = np.where(cond, x, y)
print(res)
Результат выполнения кода:
[ 10 200 30 400]