У меня есть массив 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
Так просто, как print( boolarr.sum( axis=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])
вы можете прочитать здесь