np.nansum игнорирует нули в счетчиках - PullRequest
0 голосов
/ 15 января 2019

У меня есть два счетчика в 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})

1 Ответ

0 голосов
/ 15 января 2019

См. этот пост . Если вам нужно 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...