Функция logical_xor
Функция logical_xor выполняет поэлементную операцию исключающее ИЛИ (XOR) над двумя массивами NumPy. Результатом является массив булевых значений, где элемент равен True, если соответствующие элементы входных массивов различаются (один равен True, а другой False), и False, если они одинаковы. Первым параметром функция принимает массив x1, вторым - массив x2, также доступны параметры out, where и dtype для управления выводом.
Синтаксис
np.logical_xor(x1, x2, out=None, where=True, dtype=None)
Пример
Давайте выполним операцию исключающее ИЛИ над двумя одномерными массивами булевых значений:
import numpy as np
arr1 = np.array([True, True, False, False])
arr2 = np.array([True, False, True, False])
res = np.logical_xor(arr1, arr2)
print(res)
Результат выполнения кода:
[False True True False]
Пример
Функция также работает с числовыми массивами, где ноль интерпретируется как False, а любое ненулевое значение как True:
import numpy as np
arr1 = np.array([0, 1, 2, 0])
arr2 = np.array([0, 0, 3, 4])
res = np.logical_xor(arr1, arr2)
print(res)
Результат выполнения кода:
[False True True True]
Пример
Исключающее ИЛИ можно применять к многомерным массивам. Операция выполняется поэлементно:
import numpy as np
arr1 = np.array([[True, False], [True, False]])
arr2 = np.array([[True, True], [False, False]])
res = np.logical_xor(arr1, arr2)
print(res)
Результат выполнения кода:
[[False True]
[ True False]]
Пример
Для работы с массивами разных размеров используется механизм широковещания (broadcasting):
import numpy as np
arr1 = np.array([[True, False, True], [False, True, False]])
arr2 = np.array([False, True, False])
res = np.logical_xor(arr1, arr2)
print(res)
Результат выполнения кода:
[[ True True True]
[False False False]]
Пример
С помощью параметра out можно указать массив для сохранения результата:
import numpy as np
arr1 = np.array([True, False, True])
arr2 = np.array([False, False, True])
out_arr = np.empty(3, dtype=bool)
np.logical_xor(arr1, arr2, out=out_arr)
print(out_arr)
Результат выполнения кода:
[ True False False]
Смотрите также
-
функцию
logical_and,
которая выполняет поэлементное логическое И -
функцию
logical_or,
которая выполняет поэлементное логическое ИЛИ -
функцию
logical_not,
которая выполняет поэлементное логическое НЕ -
функцию
bitwise_xor,
которая выполняет побитовое исключающее ИЛИ