python中的条件求和
我有一个numpy 2d阵列(8000x7200)。我想计算值大于指定阈值的单元格数。我试着用一个双循环来做这个,但是它需要很多时间。python中的条件求和,python,numpy,Python,Numpy,我有一个numpy 2d阵列(8000x7200)。我想计算值大于指定阈值的单元格数。我试着用一个双循环来做这个,但是它需要很多时间。 有没有快速执行此计算的方法?您的最佳选择可能类似于np.count\u nonzero(x>阈值),其中x是您的二维数组 顾名思义,count\u nonzero计算非零元素的数量。通过利用True为1-ish这一事实,您可以使用它来计算True的元素数,假设变量定义为 np.random.seed([3,1415]) a = np.random.rand(80
有没有快速执行此计算的方法?您的最佳选择可能类似于
np.count\u nonzero(x>阈值)
,其中x
是您的二维数组
顾名思义,
count\u nonzero
计算非零元素的数量。通过利用True
为1-ish这一事实,您可以使用它来计算True
的元素数,假设变量定义为
np.random.seed([3,1415])
a = np.random.rand(8000, 7200)
threshold = .5
然后使用sum
*
(a>阈值)
是一个布尔数组,指示单元格的每个实例都大于某个阈值。由于布尔值是int
的一个子类,False
为零,True
为一,因此我们可以轻松地将它们相加<默认情况下,code>numpy
ssum
对整个数组求和
(a > threshold).sum()
28798689
这几乎是50%@Ev.Kounis上的点,这是我选择的示例的性质。我知道,但我仍然对它感到有趣。非常感谢,它工作得很好,但比
np.count\u non zero