python-3.x - np.nansum 忽略 Counters 中的零
问题描述
我在 python 中有两个计数器:counter1 和 counter2。当我尝试对它们执行 np.nansum 时,其中一个字段被忽略,因为它包含零(如果我将值更改为非零,则代码可以正常工作)。是否有任何解决方法可以获取输出字典中的所有输入键?
counter1 = Counter({'sensitivity': 1.0, 'dice': 1.0, 'specificity': 1.0, 'precision': 1.0, 'c-factor': 0.0})
counter2 = Counter({'sensitivity': 1.0, 'dice': 1.0, 'specificity': 1.0, 'precision': 1.0, 'c-factor': 0.0})
c = np.nansum([counter1, counter2])
我得到的结果是:
c= Counter({'sensitivity': 2.0, 'specificity': 2.0, 'dice': 2.0, 'precision': 2.0})
比较,当我这样做时:
counter1 = Counter({'sensitivity': 1.0, 'dice': 1.0, 'specificity': 1.0, 'precision': 1.0, 'c-factor': 0.1})
counter2 = Counter({'sensitivity': 1.0, 'dice': 1.0, 'specificity': 1.0, 'precision': 1.0, 'c-factor': 0.1})
c = np.nansum([counter1, counter2])
我得到:
c=Counter({'sensitivity': 2.0, 'specificity': 2.0, 'dice': 2.0, 'precision': 2.0, 'c-factor': 0.2})
解决方案
看到这个帖子。如果你需要,update
如果你想保持零。尝试做:
c=np.nansum(counter1).copy() #I don't know why you use np.nansum, but you can pass it like this
c.update(np.nansum(counter2))
c
>>Counter({'c-factor': 0.0,
'dice': 2.0,
'precision': 2.0,
'sensitivity': 2.0,
'specificity': 2.0})