【发布时间】:2020-04-16 19:03:17
【问题描述】:
我有两个unumpy 数组:
A= [390.9999999999952+/-19.77371993328507
129.99999999999932+/-11.40175425099135
34.99999999999997+/-5.9160797830996135
4.999999999999999+/-2.2360679774997894 0.0+/-0 0.0+/-0
4.999999999999999+/-2.2360679774997894]
B= [33.999999999999964+/-5.830951894845297
17.33333333333334+/-4.163331998932266
9.666666666666666+/-3.1091263510296048
4.999999999999999+/-2.2360679774997894 0.0+/-nan 0.0+/-nan
4.999999999999999+/-2.2360679774997894]
我想传播他们的错误,同时通过以下方式计算平均比率的错误:
fraction = np.where(unumpy.nominal_values(A) > 0, unumpy.std_devs(B/A), np.nan)
但我不知道如何解决我收到的以下错误:
Traceback (most recent call last):
File "my_code4.py", line 2076, in <module>
fraction = np.where(unumpy.nominal_values(A) > 0, unumpy.std_devs(B/A), np.nan)
File "/home/username/anaconda3/lib/python3.6/site-packages/uncertainties/core.py", line 661, in f_with_affine_output
f_nominal_value = f(*args_values, **kwargs)
ZeroDivisionError: float division by zero
【问题讨论】:
-
当你用 0 除数时会出现这个错误。比如 10/0、5/0。它只是表明,在您的代码中某处发生了计算,并且分母为零。再次检查每个变量值,并删除值为 0 的所有内容...
-
嗨,阿贝,感谢您的回复。但是,从某种意义上说,零是有意义的,因为当我将其绘制为错误栏时,我希望在数组中拥有空的“正确”位置。该数组的任何位置都没有值应该意味着缺少错误栏。但是,对于每种情况,这个空箱的位置是未知的,如果可能的话,我想将它们作为 NAN 进行跟踪,因为我只显示了一次代码运行。无论如何可以自动执行此操作吗?
-
当 B 为 nan 而 A 为 0.0 时,您希望输出如何,反之亦然?我不确定我是否理解您想要的输出。也许您可以为您的输入提供所需的示例输出,以便我们提供更好的帮助。谢谢。
标签: python numpy divide-by-zero uncertainty