Python的stats包中的z()函数是什么?

时间:2018-09-16 03:21:49

标签: python-3.x functional-programming

Steven F. Lott在第106页的Functional Python Programming - Second Edition的“使用filter()识别异常值”部分中,有以下代码段:

from stats import mean, stdev, z
dist_data = list(map(dist, trip))
μ_d = mean(dist_data)
σ_d = stdev(dist_data)
outlier = lambda leg: z(dist(leg), μ_d, σ_d) > 3
print("Outliers", list(filter(outlier, trip)))

我在Google周围搜索,但在Python中没有找到stats软件包。一些相关的内容包括:statistics自Python 3.4起的软件包,以及stats.zscore在scipy中的功能。但是这些软件包中没有z()函数。

我还搜索了本书的源代码repo, 并没有发现以上代码段。

在哪里可以找到并安装此stats软件包? 谢谢。

2 个答案:

答案 0 :(得分:0)

您的主张非常有趣。我的假设是,这本书写于2015年,并于2018年重新出版。我猜可能会丢失使用最新python进行的库文件验证的机会。但是,我访问过https://pypi.org/project/stats,并亲自安装了两个版本的stats,但找不到z()函数。最后,我尝试了与Python3.x不兼容的pip install stats==0.1a。我手动下载了代码并寻找了z()函数,祝您好运!

  

stats.py是一个使用了8年的脚本,没有看到太多更新。

答案 1 :(得分:-1)

它看起来像是一个较旧的函数:

https://docs.scipy.org/doc/scipy-0.7.x/reference/generated/scipy.stats.z.html?highlight=z#scipy.stats.z

我猜您可以尝试使用发现的zscore函数。

* edit:我并不是说它将完全相同...只是名称和实现发生了变化。我认为,如果您希望代码能够正常工作,就需要对其进行更新...(例如删除均值和标准差)