首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中实现ECDF?

如何在Python中实现ECDF?
EN

Stack Overflow用户
提问于 2017-06-30 21:29:49
回答 1查看 452关注 0票数 0

我正在尝试从一个paper中实现经验分布函数,在第3页有MATLAB实现。

我根据NumPy for MATLAB users documentation进行了转换,同时考虑到了statsmodels implements ECDF

代码语言:javascript
复制
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

我得到了错误:

代码语言:javascript
复制
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]应该可以工作,对吧?这里发生了什么事?

EN

回答 1

Stack Overflow用户

发布于 2017-06-30 21:34:16

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

What does .shape[] do in "for i in range(Y.shape[0])"?

D.shape1将返回列

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44847704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档