Python 3.x 如何划分通过不确定性软件包生成的两个非通用阵列,同时避免;除零“;

Python 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,但我收

我有两个不常用的数组,形式是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,但我收到的是“零除”。但是,我只想对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])