sswwssww
@sswwssww

Почему указание массива в индексе не выдает ошибку?

У Франсуа Шолле в книге "Глубокое обучение на Keras" есть такой фрагмент кода в котором он векторизует данные:
import numpy as np
from keras.datasets import imdb

(train_x, train_y), (test_x, test_y) = imdb.load_data(num_words=10000)

def one_hot_encoding(sequences, dimension=10000):
    result = np.zeros((len(sequences), dimension))
    for i, sequens in  enumerate(sequences):
        result[i, sequens] = 1
    return result

one_hot_encoding(train_x)

Я не понимаю как result[i, sequens] = 1 не выдает ошибку:
train_x - это двумерный массив, т.е. в цикле - sequens это массив вида [1, 2, 11, 54, 1],
получается что result[i, [1, 2, 11, 54, 1]] = 1, как это возможно?
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
В качестве индекса чего-нибудь странного может использоваться даже тип данных:
List[Tuple[int, ...]]
Не удивляйтесь, что многомерный массив numpy переопределяет __getitem__ / __setitem__ неожиданным для Вас образом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы