你好,我有一个 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/