Автор оригинала: Pankaj Kumar.
Эй, ребята! В этой статье мы сосредоточимся на работе метода Python numpy.where () .
Работа функции numpy.where()
Модуль Python NumPy содержит множество встроенных функций для создания и управления элементами массива в целом.
Функция numpy.where ()
используется для возврата элементов массива на основе определенного условия s.
Синтаксис:
numpy.where(condition,a,b)
условие
: Условие манипуляции, которое должно быть применено к массиву, должно быть упомянуто.a
: Если условие выполнено, т. Е. условие оказывается истинным, то функция дает a.b
: Если условие не выполнено, это значение возвращается функцией.
Пример 1:
import numpy as np data = np.array([[10,20,30], [40,50,60], [0,1,2]]) print(np.where(data<20,True,False))
В приведенном выше примере для всех элементов массива, значение данных которых < 20 , эти значения данных заменяются на True . И для всех элементов массива, значения данных которых > 20 , т. е. значения, которые не удовлетворяют условию, заменяются на False .
Выход:
[[ True False False] [False False False] [ True True True]]
Пример 2:
import numpy as np data = np.array([[10,20,30], [40,50,60], [0,1,2]]) data_set = np.where(data<20) print("Data elements less than 20:\n") print(data[data_set])
В приведенном выше примере мы отобразили все элементы массива, которые меньше 20 .
Выход:
Data elements less than 20: [10 0 1 2]
Python numpy.where() функция с несколькими условиями
Несколько условий могут быть применены вместе с функцией numpy.where ()
для управления элементами массива в соответствии с несколькими условиями.
Синтаксис:
numpy.where((condition1)&(condition2)) OR numpy.where((condition1)|(condition2))
Пример 1:
import numpy as np data = np.array([[10,20,30], [40,50,60], [0,1,2]]) data_set = np.where((data!=20)&(data<40)) print(data[data_set])
В этом примере мы отобразили все элементы массива, значения данных которых меньше 40 и не равны 20.
Выход:
[10 30 0 1 2]
Пример 2:
import numpy as np data = np.array([[10,20,30], [40,50,60], [0,1,2]]) data_set = np.where((data<20)|(data>40)) print(data[data_set])
В приведенном выше фрагменте кода отображаются все значения данных, удовлетворяющие любому из указанных условий, т. Е. отображаются элементы массива менее 20, а также элементы массива более 40.
Вывод :
[10 50 60 0 1 2]
Замена значений массива с помощью функции numpy.where()
Используя функцию numpy.where (), мы можем заменить значения в зависимости от выполнения определенного условия.
Синтаксис:
numpy.where(condition,element1,element2)
Пример:
import numpy as np data = np.random.randn(2,3) print("Data before manipulation:\n") print(data) data_set = np.where((data>0),data,0) print("\nData after manipulation:\n") print(data_set)
В этом примере мы заменили все элементы массива на 0, значения данных которых меньше 0, т. е. не удовлетворяют упомянутому условию.
Выход:
Data before manipulation: [[ 0.47544941 -0.35892873 -0.28972221] [-0.9772084 1.04305061 1.84890316]] Data after manipulation: [[0.47544941 0. 0. ] [0. 1.04305061 1.84890316]]
Вывод
Таким образом, в этой статье мы поняли работу функции Python numpy.where() на различных входах.