首页 > 解决方案 > Sympy:集合的概率度量

问题描述

在尝试像这样计算有界集的概率时:

from sympy.stats import Normal, P
from sympy import  Interval
n = Normal("n", 0, 1)
P(n in Interval(-1, 1))

我收到以下错误:

TypeError: did not evaluate to a bool: (-1 <= n) & (n <= 1) 如何处理?

标签: pythonsympyprobability

解决方案


要使用Interval()你必须调用它的contains()方法:

P(Interval(-1,1).contains(n))

正如文档中关于使用inwith Interval()(这里) 的说明:

作为一种快捷方式,可以使用“in”运算符,但这会引发错误,除非没有获得肯定的真或假。[..] 'in' 的结果是布尔值,而不是 SymPy 值。

或者,您可以直接制定概率函数内部的条件:

P((n >-1) & (n<1))

推荐阅读