比较时跳过特定值

Skipping over a specific value when comparing

我有 10 个名为 A_1,A_2.......A_10 的 txt 文件,我想将其与名为 A 的 txt 文件进行比较。我的目标是找到特定列的值之间的差异之和,但问题在于 10 个 txt 文件(A_1,A_2.....A_10)和A,我在列中有一些等于 -1.00000E+31.I 的错误值,我被困在如何操作代码上,以便 Python 在值等于 -1.00000E+31 时跳过并且移动到下一个,想到使用 np.nan 但这不起作用,因为它使总和等于 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)

既然你 "thought of using np.nan but that's not working as it's giving the total sum to be equal to nan",numpy.nansum 就应该完成这项工作。它returns"the sum of array elements over a given axis treating Not a Numbers (NaNs) as zero."

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