Python IndexError: недопустимый индекс для скалярной переменной

Почему я получаю indexError?

Я пытался изменить нарезку на 2001 год, но мне это не помогло.

inputs = training_data[:-1] #EVERYTHING EXCEPT last values
outputs = training_data[-1] #last value

training_inputs = inputs[:2000]
training_outputs = outputs[:2000]
testing_inputs = inputs[2000:]
testing_outputs = outputs[2000:]

IndexError: неверный индекс для скалярной переменной.


person NorGer    schedule 18.09.2019    source источник
comment
outputs = training_data[-1] будет иметь одно значение, поэтому вы не сможете применить к нему нарезку.   -  person Sociopath    schedule 18.09.2019
comment
Измените свою строку на outputs = training_data[-1:]   -  person olinox14    schedule 18.09.2019
comment
Поделитесь, пожалуйста, этими деталями: форма тренировочного и тестового массивов.   -  person CypherX    schedule 18.09.2019
comment
Поделитесь, пожалуйста, этими деталями: форма обучающих и тестовых массивов и входов. Возможно, вы захотите использовать: inputs = training_data[:, :-1] и outputs = training_data[:,-1].   -  person CypherX    schedule 18.09.2019


Ответы (2)


Эта проблема возникает, когда вы пытаетесь проиндексировать скалярное неповторяемое значение.

>> data = [3, 6, 9]
>> result = data[0] # gives you result=3
>> print(result[0]) # Error
person Sai prateek    schedule 18.09.2019

Поскольку output не является списком, и поэтому невозможно выполнять операции среза. Если вы хотите, чтобы output был списком, вы можете использовать этот трюк:

outputs = training_data[-1:]
person Massifox    schedule 18.09.2019