Обработка значений nan с помощью KBinsDiscretizer - PullRequest
2 голосов
/ 07 августа 2020

У меня есть массив numpy, который выглядит следующим образом:

A = np.random.randn(100, )
A.ravel()[np.random.choice(A.size, 10, replace=False)] = np.nan

Некоторые значения отсутствуют, обозначенные np.nan

Я пытаюсь разместить на нем KBinsDiscretizer . Я хочу объединить ненулевые значения в обычном режиме и пометить нулевые значения как отдельную ячейку.

Обычно, пытаясь подогнать KBinsDiscretizer, я получил следующую ошибку из-за наличия np.nan в данных.

est = KBinsDiscretizer(n_bins=5, encode='ordinal', strategy='quantile')
est.fit(A.reshape(-1, 1))

ValueError: входные данные содержат NaN, бесконечность или значение, слишком большое для dtype ('float64').

Есть ли какие-нибудь решения для этого? Я хочу обычно помещать в корзину ненулевые значения и создавать дополнительную корзину для нулевых значений.

...