繁体   English   中英

如何在Python中实现ECDF?

[英]How do you implement ECDF in Python?

我正在尝试从第3页具有MATLAB实现的论文中实现经验分布函数。这是我的Python版本。

我根据NumPy for MATLAB用户文档进行了转换,同时考虑到statsmodels如何实现 ECDF

from statsmodels.distributions.empirical_distribution import ECDF     

def ecdf_representation(D, n):
     """calculate ECDF from D at n points"""
     m = np.mean(D)
     X = []
     for d in xrange(D.shape[0] + 1):
         func = ECDF([D[:, d] + np.random.randn(np.shape(D[:, d])) * 0.01])
         ll = func(np.linspace(0, 1, n))
         X = [X, ll]
     X = [X, m]
     plt.plot(X)
     plt.show()
     return X

我得到错误:

line 25, in ecdf_representation
func = ECDF([D[:, d] + np.random.randn(np.shape(D[:, d]))])
IndexError: too many indices for array

D.shape[0]是否不返回列数? 因此, D[:, d]应该正确吗? 这里发生了什么?

D.shape [0]将返回行,而不是列:

.shape []在“ for i in range(Y.shape [0])”中有什么作用?

D.shape [1]将返回列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM