如何修复IndexError:索引0超出了尺寸1的轴1的范围

问题描述 投票:0回答:1

这是我的代码。程序总是出现错误并输出

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
python-3.x
1个回答
0
投票

您可以通过以下方式重现错误:

Centroid =  Centroid=np.array([]).reshape(n,0)
print(Centroid[:, 0])

您正在索引到一个空数组,这将始终导致索引错误。

要解决此问题,应将Centroid初始化为非空数组。

© www.soinside.com 2019 - 2024. All rights reserved.