对于非均匀离散变量无法取反cdf

问题描述 投票:0回答:1

这是我的代码:

import scipy.stats as st
import numpy as np
from scipy import stats
xk = (30, 20, 50)
pk = (0.30, 0.2, 0.5)
custm = stats.rv_discrete(name='custm', values=(xk, pk))
X = np.random.random((100,3))

## Map back into the specified distribution by inverting the CDF
X[:, 0] = st.norm.ppf(X[:, 0], 5,2)
X[:, 1] = st.lognorm.ppf(X[:, 1], 6,1)
##This following line does not work
X[:, 2] = st.rv_discrete.ppf(X[:, 2], values=(xk, pk))

当我运行上面的代码时,出现此错误:

TypeError: ppf() missing 1 required positional argument: 'q'
python scipy inverse cdf
1个回答
0
投票

您想在instance上调用.ppf,即您的示例中为custm.ppf

© www.soinside.com 2019 - 2024. All rights reserved.