【问题标题】:Function docstrings not on the web/pdf api reference scipy.stats?函数文档字符串不在 web/pdf api 参考 scipy.stats 上?
【发布时间】:2018-09-08 01:29:43
【问题描述】:

我是否误解了如何使用 SciPy 文档?

我发现我从 the SciPy API Reference webpage/pdf, at least for scipy.stats 获得的关于 stats.gamma.fit 的信息比在 python 控制台上通过 stats.gamma.fit? 获得的信息要少得多。特别是我无法从 web/pdf API 参考中找出返回值的结构,即使它把自己描述为

所有函数和类的确切 API,由文档字符串给出。 API 记录了所有函数的预期类型和允许的特性,以及算法可用的所有参数。

我还认为 web/pdf API 参考描述的规范和控制台文档字符串之间存在矛盾。具体来说,web/pdf Reference 说fit 方法为参数flocfscale 生成一个默认值。但是来自控制台的文档字符串说,

kwds : floats, optional Starting values for the location and scale parameters; no default.

我读对了吗?

【问题讨论】:

  • 这似乎是 fit 方法的详细 API:docs.scipy.org/doc/scipy-1.1.0/reference/generated/…。关键是gamma 是更通用的rv_continuous 的子类。这些方法是为父类而不是每个子类记录的。
  • @hpaulj:这是一个实例,而不是子类。如果它是子类,它可能会继承父方法文档。 (numpy.matrixnumpy.ndarray 继承了一堆继承方法的文档。)

标签: python scipy


【解决方案1】:

正如 cmets 中所说,方法 fit 记录在 rv_continuous class 中,特别是 here。对于类的每个实例,例如gamma,此文档不会重复。

位置和比例参数的起始值;没有默认值。

这在技术上是正确的,但在某种程度上具有误导性。这意味着fit 方法签名fit(self, data, *args, **kwds) 不包含任何参数的默认值;这里没有loc=0 等。

由于最小化器工作需要一些起始值,如果用户未提供,它们将通过调用内部方法_fitstart 生成:

if (Narg < self.numargs) or not ('loc' in kwds and 'scale' in kwds):
    start = self._fitstart(data)

可以将_fitstart 提供的值视为默认值,但它们不是Python 意义上的默认参数值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多