IndexError: слишком много индексов в массиве python numpy - PullRequest
0 голосов
/ 14 апреля 2019

Я создаю экспорт для модели классификатора и некоторых масштабируемых значений.Под руководством аспиранта, который изучает эту область, он предоставил мне код, который создает для нас изменяемый словарь.Соответствующий код:

PROBA_RESCALING_N_SAMPLES = 100
PROBA_RESCALING_WINDOW_RADIUS = 0.05
y_proba = classifier.predict_proba(x)
y_proba_rescaling = {proba: y[np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS].mean() for proba in np.linspace(0, 1, PROBA_RESCALING_N_SAMPLES)}

Ошибка возникает в последней строке и говорит:

IndexError: слишком много индексов для массива

Я искал ответы на форумах и сидел с другом более часа, но все еще не мог понять, почему возникла эта ошибка.Вчера код казался нормальным, и вдруг сегодня он содержит ошибки.

РЕДАКТИРОВАТЬ: я пропустил пару важных деталей, которые я забыл упомянуть:
1. Переменная Y представляет собой массив, который содержит нули ите, что представляет ось Y в моем наборе данных для обучения ML.
2. Я сузил проблему до части y[np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS].Самостоятельный запуск выдает ошибку.

1 Ответ

0 голосов
/ 14 апреля 2019
y[np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS]

Вы имеете в виду:

y[np.abs(y_proba - proba)] <= PROBA_RESCALING_WINDOW_RADIUS

Где изменилось место в скобках?Вы индексируете сравнение в списке Y.Это не совсем имеет смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...