Метод Numpy logic_and() используется для вычисления истинного значения x1 AND x2 по элементам.
Что такое функция np.logical_and() в Python?
np.logical_and() в Python — это функция математического массива, которая вычисляет результат ai и bi для каждого элемента ai массива1 с соответствующим элементом bi массива2 и возвращает результат в виде массива. Функция logical_and() принимает входные массивы, которые должны иметь одинаковую форму, чтобы метод logical_and() работал.
Синтаксис
|
1 |
numpy.logical_and(arr1, arr2, out=None, where=True, dtype=None) |
Параметры
- arr1: Входной массив array_like, содержащий элементы ai.
- arr2: Входной массив array_like, содержащий элементы bi.
- Out:(ndarray, None или кортеж ndarray) [Необязательный параметр] Определяет альтернативный выходной массив, в который помещается результирующий продукт. Он должен иметь ту же или широковещательную форму, что и ожидаемый результат.
- where:(array_like) [Необязательный параметр] Где True, это позиции, к которым применяется оператор. Где False, это позиции, оставленные в выходном массиве.
- dtype : [Необязательный параметр] Определяет тип возвращаемого массива.
Возвращаемое значение
Результатом поэлементного логического AND является массив в Python.

Примеры программ с методом logical_and()
В следующем примере демонстрируется метод logical_and() в Питон и устанавливается таблица истинности для логического оператора AND.
Пример 1
|
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np arr1 = [0, 0, 1, 1] arr2 = [0, 1, 0, 1] arr3 = np.logical_and(arr1, arr2) print(arr3) arr4 = [False, False, True, True] arr5 = [False, True, False, True] arr6 = np.logical_and(arr4, arr5) print(arr6) |
Выход
|
1 2 |
[False False False True] [False False False True] |
Пример 2
Данный код демонстрирует случай, когда элемент массива является комплексным числом.
|
1 2 3 4 5 6 |
import numpy as np arr1 = [3+4j, 3+4j] arr2 = [1, 0] arr3 = np.logical_and(arr1, arr2) print(arr3) |
Выход
|
1 |
[ True False] |
Пример 3
Следующий код показывает, когда передается пустой массив.
|
1 2 3 4 5 6 |
import numpy as np arr1 = [] arr2 = [] arr3 = np.logical_and(arr1, arr2) print(arr3) |
Выход
|
1 |
[] |
Пример 4
Здесь демонстрируется, когда передаются массивы разных форм.
|
1 2 3 4 5 6 |
import numpy as np arr1 = [0, 0, 1, 1] arr2 = [1, 0, 1, 0, 1] arr3 = np.logical_and(arr1, arr2) print(arr3) |
Выход
|
1 2 3 4 |
Traceback(most recent call last): File "app.py", line 5, in <module> arr3 = np.logical_and(arr1, arr2) ValueError: operands could not be broadcast together with shapes(4,)(5,) |
Пример 5
Данный пример показывает использование параметра where.
|
1 2 3 4 5 6 7 8 |
import numpy as np arr1 = [0, 0, 1, 0] arr2 = [0, 0, 1, 0] arr3 = np.logical_and(arr1, arr2, where=[True, False, True, False]) arr4 = np.logical_and(arr1, arr2) print(arr3) print(arr4) |
Выход
|
1 2 |
[False True True True] [False False True False] |
Пример 6
Следующий код демонстрирует случай, когда dtype указывает тип данных элементов.
|
1 2 3 4 5 6 7 |
import numpy as np arr1 = [0, 0, 1, 1] arr2 = [0, 0, 1, 1] arr3 = np.logical_and(arr1, arr2, dtype=np.double) print(arr3.dtype == np.bool) print(arr3.dtype == np.int) |
Выход
|
1 2 |
True False |
Пример 7
В данном случае показано применение метода в простом контексте программирования.
Учитывая последовательность чисел, найдите, сколько чисел попадает в диапазон от x до y(включая оба).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import numpy as np n = int(input("Count: ")) numbers = [] x = int(input("x: ")) y = int(input("y: ")) for i in range(n): numbers.append(int(input())) new_arr = np.array(numbers) valid_arr = np.logical_and(new_arr >= x, new_arr <= y) count = 0 for i in valid_arr: if(i): count += i print("Result: ", count) |
Вывод
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Test Case 1: Count: 5 x: 10 y: 20 1 2 11 12 21 Result: 2 Test Case 2: Count: 4 x: 1 y: 3 1 2 3 4 Result: 3 |
