Наука о данных

Как использовать функцию Python NumPy where () с несколькими условиями

Как использовать функцию Python NumPy where () с несколькими условиями
Библиотека NumPy имеет множество функций для создания массива на Python. Функция where () - одна из них для создания массива из другого массива NumPy на основе одного или нескольких условий. Некоторые операции могут быть выполнены во время создания массива в зависимости от условия с помощью этой функции. Его также можно использовать без условных выражений. В этом руководстве показано, как эту функцию можно использовать с несколькими условиями в Python.

Синтаксис:

тупой.где (условие, [x, y])

где функция () может принимать два аргумента. Первый аргумент является обязательным, а второй - необязательным. Если значение первого аргумента (условие) истинно, то вывод будет содержать элементы массива из массива, Икс в противном случае из массива, у. Эта функция вернет значения индекса входного массива, если не используется необязательный аргумент.

Использование функции where ():

Для определения состояния этой функции могут использоваться различные типы логических операторов. Использование функции where () с несколькими условиями показано в этой части руководства.

Пример -1: Использование нескольких условий с логическим ИЛИ

В следующем примере показано использование функции where () с необязательным аргументом и без него. Здесь логическое ИЛИ используется для определения условия. Первая функция where () была применена к одномерному массиву, который вернет массив индексов входного массива, в котором условие вернет Правда. Вторая функция where (), примененная к двум одномерным массивам, будет извлекать значения из первого массива, когда условие вернет True. В противном случае он получит значения из второго массива.

# Импортировать библиотеку NumPy
импортировать numpy как np
# Создаем массив, используя список
np_array1 = np.массив ([23, 11, 45, 43, 60, 18, 33, 71, 52, 38])
print ("Значения входного массива: \ n", np_array1)
# Создаем еще один массив на основе нескольких условий и одного массива
new_array1 = np.где ((np_array1 50))
# Распечатать новый массив
print ("Отфильтрованные значения массива: \ n", new_array1)
# Создаем массив, используя значения диапазона
np_array2 = np.аранж (40, 50)
# Создаем еще один массив на основе нескольких условий и двух массивов
new_array2 = np.где ((np_array1 60), np_array1, np_array2)
# Распечатать новый массив
print ("Отфильтрованные значения массива: \ n", new_array2)

Выход:

Следующий вывод появится после выполнения вышеуказанного скрипта. Здесь условие вернулось Правда для значений 23,11,18,33 и 38 первого массива. Состояние вернулось Ложь для значений 45, 43, 60, 71 и 52. Итак, 42, 43, 44 и 48 были добавлены из второго массива для значений 45, 43, 60 и 52. Здесь 71 вне допустимого диапазона.

Пример -2: Использование нескольких условий с логическим И

В следующем примере показано, как функцию () можно использовать с несколькими условиями, определенными в logic и применяемыми в двух одномерных массивах. Здесь два одномерных массива NumPy были созданы с помощью функции rand (). Эти массивы использовались в функции where () с несколькими условиями для создания нового массива на основе условий. Состояние вернется Правда когда значение первого массива меньше 40, а значение второго массива больше 60. Новый массив напечатан позже.

# Импортировать библиотеку NumPy
импортировать numpy как np
# Создаем два массива случайных значений
np_array1 = np.случайный.ранд (10) * 100
np_array2 = np.случайный.ранд (10) * 100
# Распечатать значения массива
print ("\ nЗначения первого массива: \ n", np_array1)
print ("\ nЗначения второго массива: \ n", np_array2)
# Создаем новый массив на основе условий
new_array = np.где ((np_array1 60), np_array1, np_array2)
# Распечатать новый массив
print ("\ nОтфильтрованные значения обоих массивов: \ n", новый_массив)

Выход:

Следующий вывод появится после выполнения вышеуказанного скрипта. Состояние вернулось Ложь для всех элементов. Итак, возвращаемый массив содержит только значения из второго массива.

Пример-3: Использование нескольких условий в многомерном массиве

В следующем примере показано, как можно использовать функцию () с несколькими условиями, определенными логическим А ТАКЖЕ который будет применяться в двух многомерных массивах. Здесь два многомерных массива были созданы с использованием списков. Затем эти функции были применены в функции where () для создания нового массива на основе условия. Условие, используемое в функции, вернет Правда где значение первого массива четное, а значение второго массива нечетное; в противном случае условие вернется Ложь.

# Импортировать библиотеку NumPy
импортировать numpy как np
# Создаем два многомерных массива целочисленных значений
np_array1 = np.массив ([[5, 12, 21, 6, 11], [6, 10, 15, 31, 8]])
np_array2 = np.массив ([[43, 19, 7, 34, 9], [99, 22, 41, 5, 12]])
# Распечатать значения массива
print ("\ nЗначения первого массива: \ n", np_array1)
print ("\ nЗначения второго массива: \ n", np_array2)
# Создаем новый массив из двух массивов на основе условий
new_array = np.где (((np_array1% 2 == 0) & (np_array2% 2 == 1)), np_array1, np_array2)
# Распечатать новый массив
print ("\ nОтфильтрованные значения обоих массивов: \ n", новый_массив)

Выход:

Следующий вывод появится после выполнения вышеуказанного скрипта. На выходе 43, 12, 7, 34, 9, 22, 41, 5 и 12 добавлены в новый массив из второго массива, потому что условие Ложь для этих значений. Первые 12 значений в новом массиве добавлены из первого массива, потому что условие Правда только для этого значения.

Заключение:

где функция () библиотеки NumPy полезна для фильтрации значений из двух массивов. Создание нового массива путем фильтрации данных из двух массивов на основе нескольких условий, определенных логическим ИЛИ и логическим И, было объяснено в этом руководстве. Я надеюсь, что читатели смогут правильно использовать эту функцию в своих скриптах после практики примеров из этого руководства.

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...