我正在尝试计算列中满足特定条件(例如,大于 0.75)的值的数量。我的列由 2000 多个小数组成。
这是我尝试过的
a = len(fs)
c = np.zeros(a)
for i in fs[0:a]:
if i >= 0.75:
print = 1
elif i < 0.75:
print = 0
fs是我的专栏。
这段代码正确地打印了我想要的 0 和 1,但我不确定如何计算打印的 1 的数量。我想首先创建一个 0 数组,然后以某种方式将数组附加到循环中以获得正确的 0 和 1 数组。然后我就可以对数组求和。我不太确定如何解决这个问题,并且我尝试的所有方法都不起作用(我在编程方面非常缺乏经验)。有人对如何解决这个问题有什么建议吗?我知道这很简单......
谢谢你!
在 numpy 中你可以这样做:
np.where(fs >= 0.75)[0].size
or
np.count_nonzero(fs >= 0.75)
两者是等效的,但我可能更喜欢第二种。请参阅文档以获取解释:
http://docs.scipy.org/doc/numpy/reference/ generated/numpy.count_nonzero.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.count_nonzero.html
但基本上fs >= 0.75
创建一个长度相同的布尔数组fs
它的元素在哪里True
or False
根据条件。因为这相当于1
and 0
分别,np.count_nonzero
然后返回非零元素的计数。
当然,你也可以切片fs
还有:
np.count_nonzero(fs[0:a] >= 0.75)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)