Python 3.x 如何划分通过不确定性软件包生成的两个非通用阵列,同时避免;除零“;
我有两个不常用的数组,形式是mean和stdPython 3.x 如何划分通过不确定性软件包生成的两个非通用阵列,同时避免;除零“;,python-3.x,numpy,numpy-ndarray,divide-by-zero,uncertainty,Python 3.x,Numpy,Numpy Ndarray,Divide By Zero,Uncertainty,我有两个不常用的数组,形式是mean和std import numpy as np from uncertainties import unumpy A = unumpy.uarray(np.array([2,4,6,8,10]), np.array([0.2,0.3,0.1,0.5,0.3])) B = unumpy.uarray(np.array([6,10,15,0,40]), np.array([0.1,0.2,0.1,np.nan,0.3])) A/B 现在,我想计算A/B,但我收
import numpy as np
from uncertainties import unumpy
A = unumpy.uarray(np.array([2,4,6,8,10]), np.array([0.2,0.3,0.1,0.5,0.3]))
B = unumpy.uarray(np.array([6,10,15,0,40]), np.array([0.1,0.2,0.1,np.nan,0.3]))
A/B
现在,我想计算A/B,但我收到的是“零除”。但是,我只想对B不是0+/-nan的值进行除法。在例外情况下,我只想将除法结果保留为nan+/-nan,或者干脆将它们一起删除
注:
如果这些是简单的数组而不是uarray,我知道如何使用
np.除法或np.其中
您可以创建一个掩码,使用unumpy.nominal\u值将它们从数组中删除。并检查标称值是否为0
如果您想根据偏差条件屏蔽数组,您可以类似地使用unumpy.std\u devs
>>> unumpy.std_devs(B)
array([0.1, 0.2, 0.1, nan, 0.3])
array([0.3333333333333333+/-0.033793125168323446,
0.4+/-0.031048349392520047, 0.4+/-0.007180219742846007,
0.25+/-0.0077308230480331135], dtype=object)
>>> unumpy.std_devs(B)
array([0.1, 0.2, 0.1, nan, 0.3])