我试图从一个paper实现经验分布函数,它在第3页有MATLAB实现。这是我的Python版本。在
我根据NumPy for MATLAB users documentation转换它,同时考虑statsmodels
implementsECDF
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
我得到了一个错误:
^{pr2}$D.shape[0]
不返回列数吗?那么,D[:, d]
应该可以正常工作吗?这是怎么回事?在
D.shape[0]将返回行,而不是列:
What does .shape[] do in "for i in range(Y.shape[0])"?
D.shape[1]将返回列
相关问题 更多 >
编程相关推荐