你好,我有一个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)
您能帮我正确定义条件吗?
答案 0 :(得分:1)
您可能想创建一个变量,该变量是一组不符合条件的行索引,然后将该变量作为参数最后通过函数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)