Python Numpy数组-索引器错误:数组的索引太多

Python Numpy数组-索引器错误:数组的索引太多,python,arrays,numpy,Python,Arrays,Numpy,我已经回顾了这个主题的主题,但没有一个解决方案适用于我的情况,我需要这方面的帮助,请。我正在尝试使用神经语言模型为训练准备数据。我的数据已经过预处理并存储在文本文件中。样本数据如下:[“餐厅”、“巴黎”、“地区”、“枪手”、“劫持”、“人质”…],根据数组形状属性,数组形状为(10848135,)。但是,当我尝试使用语句X,y=sequences[:,:-1],sequences[:,-1] 代码如下: def encode_words(self, dataset): data

我已经回顾了这个主题的主题,但没有一个解决方案适用于我的情况,我需要这方面的帮助,请。我正在尝试使用神经语言模型为训练准备数据。我的数据已经过预处理并存储在文本文件中。样本数据如下:[“餐厅”、“巴黎”、“地区”、“枪手”、“劫持”、“人质”…],根据数组形状属性,数组形状为(10848135,)。但是,当我尝试使用语句
X,y=sequences[:,:-1],sequences[:,-1]

代码如下:

def encode_words(self, dataset):
        data = dataset.split('\n')
        tokenizer = Tokenizer()
        tokenizer.fit_on_texts(dataset)
        sequences = tokenizer.texts_to_sequences(dataset)
        vocab_size = len(tokenizer.word_index) + 1
        sequences = array(sequences)
        X, y = sequences[:,:-1], sequences[:,-1]
        y = to_categorical(y, num_classes=vocab_size)
        seq_length = X.shape[1]
        return X, y, vocab_size, seq_length, tokenizer
我知道错误是什么,但不知道如何修复。我需要帮助才能让代码正常工作。以下是完整的错误消息:

回溯(最近一次呼叫最后一次):

文件“/home/asifa/anaconda3/deep\u learning\u project/processor.py”,第15行,在
十、 y,vocab_大小,seq_长度,标记器=emb.编码_字(seq_数据)
文件“/home/asifa/anaconda3/deep\u learning\u project/WordEmbedding.py”,第67行,编码为单词
十、 y=序列[:,:-1],序列[:,-1]
索引器:数组的索引太多

您有一个一维数组,正在尝试在二维中切片。这就是为什么你会出现这个错误


您的数组形状为(10848135,),这意味着您只有一个维度。如果希望从第二个维度提取
y
数组,则需要查看文件,因为它有1d数组。因此,您不能像这样访问。

您拥有的阵列是1D,您正试图以2D的形式访问它。
如果您需要2D,请首先检查为什么是1D。

看起来您的数组
序列
只有一个轴。您需要将其重塑为具有两个轴。
sequences
dtype
是什么?@hpaulj,sequences是一个对象dtype您需要更详细地检查
sequences
。1d对象数据类型可能是列表或数组的数组,这些列表的大小各不相同。除非您了解该数组的确切性质,否则无法以有意义的方式重塑或切片。@hpaulj,我已设法以(2104309)作为输出形状重塑和切片序列-尽管我不确定新的形状和切片是否正确。然而,这行代码“y=to_category(y,num_classes=vocab_size)”抛出了以下错误消息:
File”/home/asifa/anaconda3/envs/researchProject/lib/python3.6/site packages/keras/utils/np_utils.py”,第25行,在to_categegegegory y=np.array(y,dtype='int'))ValueError:使用序列设置数组元素请知道我如何解决这个问题?
   File "/home/asifa/anaconda3/deep_learning_project/processor.py", line 15, in <module>
    X,y,vocab_size,seq_length,tokenizer = emb.encode_words(seq_data)

  File "/home/asifa/anaconda3/deep_learning_project/WordEmbedding.py", line 67, in encode_words
    X, y = sequences[:,:-1], sequences[:,-1]

IndexError: too many indices for array