这是我的代码。程序总是出现错误并输出
IndexError: index 0 is out of bounds for axis 1 with size 0
这是我第一次学习如何使用python进行编码,但我不明白程序为什么会出错。
import pandas as pd
import numpy as np
import math
from matplotlib import pyplot as plt
data= pd.read_csv('fifa20.csv') data.describe()
X = data.iloc[:, [2, 6]].values
m=X.shape[0] #number of training examples n=X.shape[1] #number of features.Here n=2 n_iter=100
K=4 # number of clusters
Centroid=np.array([]).reshape(n,0)
Output={}
EuclidianDistance=np.array([]).reshape(m,0)
for k in range(K):
tempDist=np.sum((X-Centroid[:,k])*2,axis=1) #I got Index error in this line
EuclidianDistance=np.c_[EuclidianDistance,tempDist]
C=np.argmin(EuclidianDistance,axis=1)+1
您可以通过以下方式重现错误:
Centroid = Centroid=np.array([]).reshape(n,0)
print(Centroid[:, 0])
您正在索引到一个空数组,这将始终导致索引错误。
要解决此问题,应将Centroid初始化为非空数组。