У меня есть массив 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').
Есть ли какие-нибудь решения для этого? Я хочу обычно помещать в корзину ненулевые значения и создавать дополнительную корзину для нулевых значений.