NumPy или Pandas: сохранение типа массива в виде целого числа со значением 'inf' - PullRequest
0 голосов
/ 26 апреля 2020

Теперь я знаю, что в новой версии pandas имеется специальное расширение типа данных 'Int64', которое позволяет отсутствующим значениям сосуществовать с целыми числами в одном столбце this topi c объясняет так же. Тем не менее, я хотел бы иметь целочисленный столбец, который также позволяет значения бесконечности. Но когда я пытаюсь добавить float('inf') в столбец с типом Int64, я получаю сообщение об ошибке: «невозможно безопасно привести не эквивалентный float64 к int64».

Причина, по которой я хочу Значения бесконечности в моем столбце означают, что у меня есть столбец целочисленных расстояний, и хотя некоторые из этих расстояний неизвестны, известно, что такие расстояния превышают, скажем, 3000 метров. И когда я вычисляю медиану этого столбца, это имеет значение. Например, медиана массива [1, 5, 10, 20, 50, нан, нан, нан] составляет 10, потому что значения NaN игнорируются. Но медиана массива [1, 5, 10, 20, 50, inf, inf, nan] равна 20, потому что значения inf считаются больше 50.

Есть ли способ сделать целые числа совместимыми с значения 'inf'? Или я должен обойтись с поплавком?

1 Ответ

0 голосов
/ 26 апреля 2020

Math inf должен работать в вашем случае -

import math
import statistics as stat


test = math.inf
a = [1, 5, 10, 20, 50, test, test, float("nan")] 
print(stat.median(a))
...