Matplotlib:IndexError:数组的索引太多了

时间:2017-06-07 09:48:12

标签: python numpy matplotlib

我试图用散射函数绘制numpy数组。以下是代码: 在线mtp.scatter,我得到索引错误。

numpy数组是[1. 1. 3. 3. 1.1 1.1 1.3 1.3]

相应的颜色是['红色','绿色','红色','红色']

错误讯息: mtp.scatter(X_traintest [:,0],X_traintest [:,1],S = 170,C = Y_colorset [:])
IndexError:数组

的索引太多
X_traintest=np.array([[]])
X_traintest=np.append(X_traintest, X_trainset)

num1=len(X_trainset)
num2=len(X_testset)
for i in range (num2):
    X_traintest=np.append(X_traintest,X_testset[i], axis=0)
    emptarray=np.zeros(num1)
    for j in range (num1):
        emptarray[j]=mindist(X_testset[i], X_trainset[j])

        print emptarray
    min_index=np.argmin(emptarray)

    Y_colorset.append(Y_colorset[min_index])
    print X_traintest
    print Y_colorset

mtp.figure()        
mtp.scatter(X_traintest[:,0],X_traintest[:,1],s=170,c=Y_colorset[:])
mtp.show()

2 个答案:

答案 0 :(得分:0)

看起来X_traintest是一维数组,并且您尝试提供多个维度索引。 (即两个:[:, 0]

答案 1 :(得分:0)

当输入大小不一致时会出现此错误。

检查所有输入的长度,即

  • X_traintest [:,0]
  • X_traintest [:,1]
  • Y_colorset [:]

另外,检查上述每个表达式在维度(1D)中是否相同