如何计算 NumPy bool 数组每一行中真正元素的数量
How to count the number of true elements in each row of a NumPy bool array
我有一个布尔类型的 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
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])
我有一个布尔类型的 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
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])