Python 3.x np.nansum忽略计数器中的零

Python 3.x np.nansum忽略计数器中的零,python-3.x,numpy,Python 3.x,Numpy,python中有两个计数器:counter1和counter2。当我尝试对它们执行np.nansum时,其中一个字段被忽略,因为它包含零(如果我将值更改为非零,代码工作正常)。是否有任何解决方法来获取输出dict中的所有输入键 counter1 = Counter({'sensitivity': 1.0, 'dice': 1.0, 'specificity': 1.0, 'precision': 1.0, 'c-factor': 0.0}) counter2 = Counter({'sensit

python中有两个计数器:counter1和counter2。当我尝试对它们执行np.nansum时,其中一个字段被忽略,因为它包含零(如果我将值更改为非零,代码工作正常)。是否有任何解决方法来获取输出dict中的所有输入键

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})
看。如果要保留零,则需要更新。试着做:

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})

非常感谢你的回答,这就是我需要的解决方案。我使用nansum是因为有时c因子值是nan(这是正确的),我只想在计算总和时忽略这些值。