我是python新手,在函数方面有困难。它应该删除(N,10)矩阵(从文件导入)中出现-1的行。这是密码 作为pd导入 将numpy作为np导入
def load(name, f):
file = pd.read_csv(name,header=None)
totalMatrix = np.array(file)
if f == 'forward':
for i in range(len(totalMatrix)):
for j in range(10):
if totalMatrix[i,j] ==-1:
if i > 0:
totalMatrix[i,j]=totalMatrix[i-1,j]
else:
print("Warning")
f = 'drop'
elif f == 'drop':
for i in range(len(totalMatrix)): # or np.size(totalMatrix[:, 0])
for j in range(10):
if totalMatrix[i,j] == -1 :
totalMatrix = np.delete(totalMatrix, (i), axis=0)
t = totalMatrix[:, 0:6]
d = totalMatrix[:, 6:11]
return t, d
但我一直在说这个错误:
line 38, in load
if totalMatrix[i,j] == -1 :
IndexError: index 2 is out of bounds for axis 0 with size 2
我在网上找了好几个地方,但都找不到答案,我自己也找不到错误。有谁能看出来有什么问题告诉我吗?你知道吗
它不起作用,因为矩阵越来越小,而您继续基于旧的大小进行迭代,即,如果totalMatrix开头有3行,而您删除了其中一行,则最后一次迭代将尝试获取不存在的行。你知道吗
在矩阵上迭代时,收集要删除的索引。之后,您可以立即删除它们。你知道吗
相关问题 更多 >
编程相关推荐