Как вычислить, сколько элементов в трех массивах в python равно некоторому значению в той же позиции между массивами? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть три numpy массива

a = [0, 1, 2, 3, 4]
b = [5, 1, 7, 3, 9]
c = [10, 1, 3, 3, 1]

, и я хочу вычислить, сколько элементов в a, b, c равно 3 в той же позиции, поэтому для этого примера будет 3.

1 Ответ

1 голос
/ 19 июня 2020

Элегантное решение - использовать функции Numpy, например:

np.count_nonzero(np.vstack([a, b, c])==3, axis=0).max()

Подробности:

  • np.vstack([a, b, c]) - сгенерировать массив с 3 строки, состоящие из 3 исходных массивов.
  • np.count_nonzero(...==3, axis=0) - подсчитайте, сколько значений 3 встречается в каждом столбце. Для ваших данных результат будет array([0, 0, 1, 3, 0], dtype=int64).
  • max() - возьмите наибольшее значение, в вашем случае 3.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...