使用scipy是否可以将连续随机变量转换为离散变量?

Can continuous random variables be converted into discrete using scipy?

如果我初始化 scipy.stats.rv_continuous 的子类,例如 scipy.stats.norm

>>> from scipy.stats import norm
>>> rv = norm()

我可以在提供范围数量后将其转换为概率列表,每个元素代表一个范围值的概率吗? 就像是 - (对于范围 - [(-inf,-1), (-1,0), (0,1), (1, inf)] )

>>> li
[0.15865525393145707, 0.34134474606854293, 0.34134474606854293, 0.15865525393145707]

( 其中 0.15865525393145707 是变量小于 -1 的概率,0.34134474606854293 是在 -1 到 0 范围内的概率,其他情况也类似。

可以使用 scipy 来完成吗?如果不是,哪个 python 库可以支持这样的转换操作?

根据您的评论,您可以使用 CDF:

进行计算
from scipy.stats import norm
import numpy as np

>>> norm().cdf(-1) - norm().cdf(-np.inf), \
    norm().cdf(0) - norm().cdf(-1), \
    norm().cdf(1) - norm().cdf(0), \
    norm().cdf(np.inf) - norm().cdf(1)
(0.15865525393145707,
 0.34134474606854293,
 0.34134474606854293,
 0.15865525393145707)

这基本上遵循了 CDF 的定义。


请注意,我得到的数字总和为 1,但不是您写为预期输出的数字。我不知道你说这些是正确的依据。我的猜测是您隐含地使用了具有非单位标准偏差的 Normal 变量。