似乎我在某处有一个错误的索引,但无法发现它

安丁

我是 python 的新手并且在使用函数时遇到了问题。它应该删除出现 -1 的 (N,10) 矩阵(从文件导入)的行。这是代码 import pandas as pd import numpy as 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 行而您删除了一行,则最后一次迭代将尝试获取不存在的行。

在 Matrix 上迭代时,收集要删除的索引。之后,您可以立即删除它们。

 toDelete = []
 for i in range(len(totalMatrix)): # or np.size(totalMatrix[:, 0])
     for j in range(10):
         if totalMatrix[i,j] == -1 : 
             toDelete.append(i)
 totalMatrix = np.delete(totalMatrix, i, axis=0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我在某处有一个隐藏的配置文件吗?

我在 PHP 中发现了一个问题,但无法理解它的想法

我的海龟代码有一个错误,我似乎无法在它的末尾修复

有一个资源泄漏的警告,但我似乎无法关闭它

我在 jquery ajax 中有一个脚本,但无法修复错误

我有一个php页面,但无法查看错误

做一个代码视频,这是完全相同的代码,但我收到一个错误,似乎无法找到它的问题

MySQL数据库似乎有一个我无法修复的错误。错误代码1292:

我的功能有一个我似乎无法解决的问题。目前,它说无法读取连接插槽中未定义的属性“ split”

'submodule'似乎是一个git命令,但我们无法执行它

定义一个函数digits_stars()....我似乎无法正确执行它

我正在尝试做一个 def 语句,但无论我怎么尝试都无法让它工作

我的调试器说我有一个段错误,但无法告诉我在特定情况下会发生在哪里

我正在尝试在 Python 3 中创建一个虚拟环境,但无法设置它

我有一个手风琴短代码,但无法使其成为RTL

我发现一个Excel配置错误:无法获取OLEObject类的Object属性

无法获得此代码以列出目录中的所有文件,或者给我一个错误。它什么也没做

无法识别我的错:它似乎在调用超类构造函数中的某处

删除 .java 其 .class 文件似乎仍在某处后,如何清理我的 eclipse 项目?

我的一个函数有问题,我写错了,我无法猜测如何更改它

我无法打开文件以在 python 中写入它给我一个错误

我发现了一个关于日期的错误

有一个有趣的问题。我正在使用 Laravel 8 并且我从通行证中收到此错误:安装命令,我无法解决它

angular 8 在 onchanges 事件中修改了一个变量,但是当我想访问它时,我发现它没有改变

我有一个在 C 中似乎找不到的分段错误

我的 python 代码有一个错误 involvinf % 计算器,我找不到它

我不能引用一个类 - 某处的问题

当我绑定到一个数组时,它似乎没有正确反映到标记 ngif

共享库如何定义一个函数但无法链接到它?