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

你好,我有一个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,1])  

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

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

tmroybq 回答:删除二维数组中的某些对象

您可能想创建一个变量,该变量是一组不符合条件的行索引,然后将该变量作为参数最后通过函数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)
本文链接:https://www.f2er.com/3151519.html

大家都在问