РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
72 of 541 menu

Функция 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]

Смотрите также

  • функцию select,
    которая выбирает элементы по нескольким условиям
  • функцию nonzero,
    которая возвращает индексы ненулевых элементов
  • функцию argwhere,
    которая возвращает индексы элементов, удовлетворяющих условию
  • функцию choose,
    которая выбирает элементы из массива по индексам
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить