纽比:寻找差异在两个包含浮点值的文件之间

2024-04-27 02:50:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python计算两个文本文件之间的差异,并打印第一个值和它们开始偏离的位置。在

我不知道如何使用loadtxt

import numpy as np
a = np.loadtxt("path/to/file", float)
b = np.loadtxt("path/to/file2", float)    
while np.absolute(a - b) !=0:


1
2
3
...

不知道怎么完成这个?开始正确吗?在


Tags: topathimportnumpyasnp差异float
1条回答
网友
1楼 · 发布于 2024-04-27 02:50:28

你可以利用

idx = np.where(np.abs(a-b) > 1e-6)[0]
firstidx = idx[0]

要找到第一个索引,其中ab中的值相差超过某个名义值,如1e-6

^{pr2}$

请注意,在处理float时,很少需要与equality进行比较,比如

np.abs(a-b) == 0

或者相反

np.abs(a-b) != 0

因为浮点表示的不精确性会导致a和{}略有不同,即使它们的值应该完全相同,如果它们的值以无限精度表示的话。在

所以用一些像

np.abs(a-b) > 1e-6

相反。(请注意,您必须选择公差等级,例如1e-6)。在


下面是一个simple example演示使用相等比较浮点数的陷阱:

In [10]: 1.2-1.0 == 0.2
Out[10]: False

相关问题 更多 >