python - python中的条件求和

标签 python numpy

我有一个 numpy 二维数组 (8000x7200)。我想计算值大于指定阈值的单元格的数量。我尝试使用双循环来执行此操作,但这会花费很多时间。 有没有办法快速执行此计算?

最佳答案

假设您的变量定义为

np.random.seed([3,1415])
a = np.random.rand(8000, 7200)
threshold = .5

然后使用sum
*(a > threshold) 是一个 bool 数组,指示单元格的每个实例都大于某个 threshold。由于 bool 值是 int 的子类,False 为零,True 为一,我们可以很容易地将它们相加。 numpys sum 默认对整个数组求和。

(a > threshold).sum()
28798689

关于python - python中的条件求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44439375/

相关文章:

python - 为什么 Numpy 比这个 cython 例程好 3 倍

python - 读取一个大文件 vs 打开数千个文件

python - 在 python 数据类 __init__ 方法中强制类型转换

python-3.x - Numpy.unique 在 .append 之后使用时失败

python - 如何在通过将 txt 文件加载到 scipy 程序形成的图上的特定间隔内插入点?

arrays - 为什么 BSON 序列化的 numpy 数组比原始数组大得多?

python - 无法使用新观察更新 StatsModels SARIMAX (ValueError)

python - 使用字符值在 Pandas 中创建新行

python - Kivy-如何从服务器持续接收数据并使用kivy更新界面

python - Keras 中的损失函数与类比函数不匹配