我有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)
答案 0 :(得分:0)
由于您已经考虑过使用np.nan
,但这不起作用,因为它总和等于nan
",{ {3}}应该做的工作。它返回"给定轴上的数组元素之和,将非数字(NaN)视为零。"
如果您需要平均跳过numpy.nansum
并直接进入numpy.nansum
。