def summary(x, axis=None, shorten=False):
if isinstance(x, Iterator):
x = list(x)
if isinstance(x, (tuple, list)):
x = np.array(x)
mean, std = np.mean(x, axis=axis), np.std(x, axis=axis)
median = np.median(x, axis=axis)
qu1, qu3 = np.percentile(x, [25, 75], axis=axis)
min_, max_ = np.min(x, axis=axis), np.max(x, axis=axis)
samples = ', '.join([str(i)
for i in np.random.choice(x.ravel(), size=8, replace=False).tolist()])
s = ""
if not shorten:
s += "***** Summary *****\n"
s += " Min : %s\n" % str(min_)
s += "1st Qu. : %s\n" % str(qu1)
s += " Median : %s\n" % str(median)
s += " Mean : %.8f\n" % mean
s += "3rd Qu. : %s\n" % str(qu3)
s += " Max : %s\n" % str(max_)
s += "-------------------\n"
s += " Std : %.8f\n" % std
s += "#Samples : %d\n" % len(x)
s += "Samples : %s\n" % samples
else:
s += "{#:%d|min:%s|qu1:%s|med:%s|mea:%.8f|qu3:%s|max:%s|std:%.8f}" %\
(len(x), str(min_), str(qu1), str(median), mean, str(qu3), str(max_), std)
return s
评论列表
文章目录