我正在编写一个程序来生成一个输出,但是我遇到了一个IndexError,其中包含以下行:
X_out[index_1, index_2, X_subset] = 1
字符串
下面是我得到的错误。
IndexError Traceback (most recent call last)
Cell In[18], line 20
18 index_1 = np.repeat(np.arange(batch_size), seq_len).reshape(batch_size, seq_len)
19 index_2 = np.arange(seq_len)
---> 20 X_out[index_1, index_2, X_subset] = 1
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
型
我需要帮助来解决这个问题。这是我的代码;
import pandas as pd
import numpy as np
data = {'Name': ['Tom', 'Joseph', 'Krish', 'John'], 'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
batch_size=2
vocab_size=2
n_samples = len(df['Name'])
seq_len = len(df['Name'][0])
X=df['Name']
Y=df['Age']
start = 0
stop = start + batch_size
X_subset = X[start: stop]
X_out = np.zeros([batch_size, seq_len, vocab_size])
index_1 = np.repeat(np.arange(batch_size), seq_len).reshape(batch_size, seq_len)
index_2 = np.arange(seq_len)
X_out[index_1, index_2, X_subset] = 1
型
1条答案
按热度按时间vohkndzv1#
运行代码:
字符串
查看问题行中的变量:
型
到目前为止还可以。但是:
型
这显然不是一个有效的指数。它是一个Series,具有对象类型和字符串值。
index_1
是(2,3);index_2
是(3,);它们一起广播,并选择前2个维度中的所有元素。型
是有效的索引;选择所有
X_out
。SamesX_out[:]
index_1
也可以是(2,1)形状;不需要重复。型
我不知道最后一个
vocab_size
维度索引应该是什么。显然不是一连串的话。其他的是(2,3)和(3,),它只能是(3,)或标量。但是如果
[0,1,0]
,重复值会做什么?不可能是[0,1]
型
可以;再次使用(2,3)和(3,)广播。