比较时跳过特定值

时间:2017-07-28 16:20:07

标签: python numpy difference skip

我有10个名为A_1,A_2 ....... A_10的txt文件,我想将它与名为A的txt文件进行比较。我的目标是找到特定列值之间的差异总和,但是问题是在10个txt文件(A_1,A_2 ..... A_10)和A中,我在列中有一些错误的值,等于-1.00000E + 31.我陷入了如何操纵代码,以便Python在值等于-1.00000E + 31时跳过并移动到下一个,考虑使用np.nan,但这不起作用,因为它使总和相等到了南。任何建议都会非常有用。

import numpy as np
filelist=[]
for i in range(1,11):
    filelist.append("/Users/Hrihaan/Desktop/A_%s.txt" %i)
for fname in filelist:
    data=np.loadtxt(fname)
    data1=np.loadtxt('/Users/Hrihaan/Desktop/A.txt')
    x=data[:,1]
    x1=data1[:,1]
    bad = np.where(data[:,1] == -1E31)
    data[bad,1] = np.nan
    bad1 = np.where(data1[:,1] == -1E31)
    data1[bad1,1] = np.nan
    x2=(x-x1)
    x3=sum(x2)
    print(fname)
    print(x3)

1 个答案:

答案 0 :(得分:0)

由于您已经考虑过使用np.nan,但这不起作用,因为它总和等于nan",{ {3}}应该做的工作。它返回"给定轴上的数组元素之和,将非数字(NaN)视为零。"

如果您需要平均跳过numpy.nansum并直接进入numpy.nansum