如果遇到被零除,则返回零值

2024-09-29 19:30:34 发布

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

我有两个长度相等的列表a和{}。我想计算它们的比率之和:

c = np.sum(a/b)

当除以零时,求和系数中怎么会有一个零(0)值?在

编辑:这里有几个我为我的案例测试过的答案,仍然会出现错误。可能我遗漏了什么。包含零元素的aray是counts

^{pr2}$

还有np.where()

cnterr = np.where(counts != 0, ((counts/np.mean(counts))*(((cnterr/counts)**2 + (meanerr/np.mean(counts))**2 ))**1/2), 0)

提出同样的错误。在


Tags: 答案元素编辑列表错误npmeanwhere
3条回答

这是可行的,它在列表中放一个0,其中有一个除以零:

c = np.sum([x/y if y else 0 for x,y in zip(a,b)])

或者,是@mskimm答案的变体。注意,首先需要将输入列表转换为numpy数组:

^{pr2}$

要求和除divide by 0之外的值

sel = b != 0
c = np.sum(a[sel]/b[sel])

数组是float,您可能需要使用

^{pr2}$

更新

如果a和{}不是{},请在第一个代码中编写以下代码。在

a = np.array(a)
b = np.array(b)

相关问题 更多 >

    热门问题