gpt4 book ai didi

python-3.x - 打印两个数组中不匹配的项

转载 作者:行者123 更新时间:2023-12-02 16:19:41 25 4
gpt4 key购买 nike

我想比较两个数组(4 个浮点)并打印不匹配的项目。我使用了这段代码:

>>> from numpy.testing import assert_allclose as np_assert_allclose
>>> x=np.array([1,2,3])
>>> y=np.array([1,0,3])
>>> np_assert_allclose(x,y, rtol=1e-4)

AssertionError:
Not equal to tolerance rtol=0.0001, atol=0

(mismatch 33.33333333333333%)
x: array([1, 2, 3])
y: array([1, 0, 3])

此代码的问题在于大数组:

(mismatch 0.0015104228617559556%)
x: array([ 0.440088, 0.35994 , 0.308225, ..., 0.199546, 0.226758, 0.2312 ])
y: array([ 0.44009, 0.35994, 0.30822, ..., 0.19955, 0.22676, 0.2312 ])

我找不到哪些值不匹配。如何才能看到它们?

最佳答案

直接使用

~np.isclose(x, y, rtol=1e-4)  # array([False,  True, False], dtype=bool)

例如

d = ~np.isclose(x, y, rtol=1e-4)
print(x[d]) # [2]
print(y[d]) # [0]

或者,获取索引

np.where(d)  # (array([1]),)

关于python-3.x - 打印两个数组中不匹配的项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45713159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com