gpt4 book ai didi

scipy - "see docstring of the instance object for more information"是什么意思

转载 作者:行者123 更新时间:2023-12-05 08:57:08 25 4
gpt4 key购买 nike

我觉得这是一个愚蠢的问题,但是当我在 IPython 笔记本中时,我确实在一些 numpy/scipy 函数上提供帮助,比如 stat.norm.rvs,它经常说,关于 *args 和 ** kargs,“有关更多信息,请参阅实例对象的文档字符串”。如果没有帮助(stat.norm.rvs),我如何查看此文档字符串?

最佳答案

不要觉得自己傻;有时很难找到您正在寻找的信息,尤其是刚开始时。此外,scipy.stats 中的大部分文档字符串都是自动生成的,因此它们有些通用,而不是定制的。好消息是,一旦您了解了如何操纵分布,所有其他的基本相同,因为它们共享相同的界面

让我们来看一个例子。由于您使用的是 IPython(太棒了!),我们也可以在宾语后使用问号,例如obj?,了解更多关于目的。这显示了文档字符串,如 help(obj),以及其他有用的信息,例如作为其类型、定义位置和(对于可调用对象)其调用签名。

了解事物的组织方式很有帮助。 scipy.stats 是一个模块:

In [386]: from scipy import stats

模块文档字符串列出了多种分布。

In [394]: stats?
...
Continuous distributions
========================
...
alpha -- Alpha
anglit -- Anglit
arcsine -- Arcsine
beta -- Beta
betaprime -- Beta Prime
...
norm -- Normal (Gaussian)

有两个主要类 -- stats.rv_continuousstats.rv_discretestats 文档字符串中列出的每个发行版都是一个实例这两个类之一。 stats.norm 例如,是一个 instance ofstats.norm_gen这是一个 subclass of stats.rv_continuous :

In [14]: type(stats.norm).mro()
Out[14]:
[scipy.stats._continuous_distns.norm_gen,
scipy.stats._distn_infrastructure.rv_continuous,
scipy.stats._distn_infrastructure.rv_generic,
object]

请注意 stats.norms.rvs 是一个实例方法:

In [387]: stats.norm.rvs?
Type: instancemethod
String form: <bound method norm_gen.rvs of <scipy.stats._continuous_distns.norm_gen object at 0x7f1479ba2690>>

所以稍后它会说

The shape parameter(s) for the distribution (see docstring of the instance object for more information).

它说在stats.norm 的文档字符串中有更多信息:

In [401]: stats.norm?
Docstring:
A normal continuous random variable.

The location (loc) keyword specifies the mean.
The scale (scale) keyword specifies the standard deviation.
...
Methods
-------
``rvs(loc=0, scale=1, size=1, random_state=None)``
Random variates.

从这个描述中,您可以看到 stats.norm.rvs(loc=10, scale=2, size=5) 将返回 5 个随机变量,均值为 10,标准差为 2:

In [402]: stats.norm.rvs(loc=10, scale=2, size=5)
Out[402]: array([ 9.82454792, 8.52106712, 7.33889233, 8.73638555, 10.90927226])

或者,stats.norm 也是可调用的——您可以传递 locscale “形状”参数 to "freeze" those parameters进入分配。你得到的东西被称为“卡住分配”。例如,您可以创建一个均值为 10 且标准差为 2 的正态分布:

In [403]: norm = stats.norm(10, 2)

现在调用卡住分布的rvs方法来获得5个随机变量:

In [404]: norm.rvs(5)
Out[404]: array([ 7.21018883, 12.98978919, 10.99418761, 11.2050962 , 8.27780614])

关于scipy - "see docstring of the instance object for more information"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com