Как проверить, имеют ли два числа в двумерном массиве разную четность - PullRequest
0 голосов
/ 20 марта 2020

В моем реальном случае у меня есть массив формы (8,2), и мне нужно проверить, имеют ли два целых числа разную четность. Например, здесь я хочу, чтобы строка 0 возвращала False (8 и 2 четные, поэтому одинаковая четность) строка 1 возвращает True (10 - четное число и 3 - нечетное число) и т. Д.

[[ 8  2]
[10  3]
[12 1]
[5 6]] 

Я хотел бы, чтобы результат был в массиве, подобном этому:

array([ False, True, True, True], dtype=bool)

Я думал использовать функцию np.all, но я не знаю, как это сделать.

1 Ответ

1 голос
/ 20 марта 2020

Вы можете суммировать их и проверить, является ли сумма четной:

import numpy as np

a = np.array([[8, 2],
              [10, 3],
              [12, 1],
              [5, 6]])

result = (a.sum(1) % 2).astype(bool)
print(result)

Выход

[False  True  True  True]

Если оба имеют При той же четности сумма является четной, в противном случае нечетной.

...