Как подсчитать количество истинных элементов в каждой строке логического массива NumPy

У меня есть массив NumPy 'boolarr' логического типа. Я хочу подсчитать количество элементов, значения которых равны True в каждой строке. Есть ли подпрограмма NumPy или Python, предназначенная для этой задачи?

Например, рассмотрим код ниже:

>>> import numpy as np
>>> boolarr = np.array([[0, 0, 1], [1, 0, 1], [1, 0, 1]], dtype=np.bool)
>>> boolarr
array([[False, False,  True],
       [ True, False,  True],
       [ True, False,  True]], dtype=bool)

Подсчет каждой строки даст следующие результаты:

1
2
2

вы можете прочитать здесь

gretal 23.03.2022 07:28

Так просто, как print( boolarr.sum( axis=1 )).

Tim Roberts 23.03.2022 07:30
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
In [48]: boolarr = np.array([[0, 0, 1], [1, 0, 1], [1, 0, 1]], dtype=bool)
In [49]: boolarr
Out[49]: 
array([[False, False,  True],
       [ True, False,  True],
       [ True, False,  True]])

Просто используйте sum:

In [50]: np.sum(boolarr, axis=1)
Out[50]: array([1, 2, 2])

True считается как 1 при сложении.

Или:

In [54]: np.count_nonzero(boolarr, axis=1)
Out[54]: array([1, 2, 2])

Другие вопросы по теме