python - 删除二维数组中的某些对象

标签 python spyder

你好,我有一个 txt 文件,我想将其制作成数组。 我想删除数组中不符合我的条件的行。 例如 列 0 必须介于 10 到 60 之间 第 1 列必须为正数 第 2 列必须介于 1 和 4 之间

我尝试找到一种方法来定义条件,但没有成功。 我编写了以下代码:

RD = np.loadtxt(filename)
for i in range(len(RD)):
    if (RD[:,0] < 10 or RD[:,0] > 60):
         RD= np.delete(RD,[i,0])

    elif RD[:,2]<0:
        RD= np.delete(RD,[i,1])  

    elif (RD[:,2]<1 or RD[:,2]>4):
        RD= np.delete(RD,[i,2])
print(RD)

你能帮我正确定义条件吗?

最佳答案

您可能想要创建一个变量,它是一组不满足条件的行索引,然后将该变量作为参数传递到函数 np.delete() 最后。

rows_to_del=[row for row in range(RD.shape[0]) 
             if (RD[row,0] < 10 or RD[row,0] > 60) 
             or RD[row,2] > 0 
             or (RD[row,2]<1 or RD[row,2]>4)]

RD = np.delete(RD, rows_to_del, axis=0)

关于python - 删除二维数组中的某些对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58731999/

相关文章:

python - 如何将列表字典转换为 python 中的键和值元组列表?

python - virtualenv macosX --no-site-package 忽略

python - Pygame "No module called pygame.base"

python - 在 Spyder 面板中重新定位面板

python - 导入错误 - 无法从 'train_test_split' 导入名称 'sklearn.preprocessing'

python - python中的递归重新加载() "from some_module import *"

python - 使用Python中的自定义比较函数对字典键对象列表进行排序

Python:在/opt目录中设置pip或conda的权限

python - QGtkStyle 无法解析 GTK

python - 为什么 python 脚本在 Spyder 与 cmd 提示符中的工作方式不同