Python "Too many indices for array"

13 浏览
0 Comments

Python "Too many indices for array"

我正在使用pandas在Python中读取一个文件,然后将其保存在一个numpy数组中。

该文件的维度是11303402行x10列。

我需要将数据拆分为交叉验证,为此我将数据切片为11303402行x9列的示例和11303402行x1列的标签数组。

以下是代码:

tdata=pd.read_csv('train.csv')
tdata.columns='Arrival_Time','Creation_Time','x','y','z','User','Model','Device','sensor','gt']
User_Data = np.array(tdata)
features = User_Data[:,0:9]
labels = User_Data[:,9:10]

错误出现在以下代码中:

classes=np.unique(labels)
idx=labels==classes[0]
Yt=labels[idx]
Xt=features[idx,:]

在这行代码上:

Xt=features[idx,:]

它说“数组的索引太多”

所有3个数据集的形状是:

print np.shape(tdata) = (11303402, 10)
print np.shape(features) = (11303402, 9)
print np.shape(labels) = (11303402, 1)

如果有人知道问题,请帮助。

0
0 Comments

问题的原因是idx的形状为(11303402,1),因为逻辑比较返回与labels相同形状的数组。这两个维度使用了features中的所有索引。解决方法是使用以下快速解决方法:Xt=features[idx[:,0],:]

0