

python初心者のものです。  
2011枚の画像データを格納しているcsvを読み込み、PCAをかけて結果を前半1000と後半1011に分けてグラフに出力するコードを実行すると

> IndexError: index 2 is out of bounds for axis 1 with size 2

と怒られてしまいました。エラーの対処方法をご存じの方はご教授お願い致します。

[code]

    import numpy as np
    from sklearn.cluster import KMeans
    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    import pandas as pd
    
    users = np.loadtxt('/home/srl/mimamori1/b1/bb1.csv', delimiter=",")
    model = KMeans(n_clusters=2).fit(users) 
    
    
    pca = PCA(n_components=2)
    users_r = pca.fit_transform(users)
    plt.figure()
    ccode=[1]*1000+[2]*1011
    
    plt.scatter(users_r[:,1],users_r[:,2],c=ccode)
    plt.xlabel('pc1')
    plt.ylabel('pc2')
    
    
    print('各次元の寄与率: {0}'.format(pca.explained_variance_ratio_))
    print('累積寄与率: {0}'.format(sum(pca.explained_variance_ratio_)))
    plt.show()
    
[/code]


CC BY-SA 3.0
2017-12-02T09:49:23.010
39980
2018-02-10T17:36:16.173
2017-12-02T09:55:31.053
26452
26452
question
python matplotlib pca
index 2 is out of bounds for axis 1 with size 2の対処方法


Pythonのインデックスは(matlabと違って)0始まりなので、

[code]

    users_r[:,1],users_r[:,2]
    
[/code]

を

[code]

    users_r[:,0],users_r[:,1]
    
[/code]

に直して見てください。


CC BY-SA 3.0
2017-12-02T19:41:30.017
39987
2017-12-02T19:41:30.017
26311
39980
answer