如何以编程方式获取参数名称和值在scipy中

时间:2017-11-23 07:42:03

标签: python scipy statistics probability probability-distribution

有没有办法获取分发参数?我知道几乎每个发行版都有“loc”和“scale”但它们之间存在差异,例如alpha有“a”,beta有“a”,“b”。

我想要做的是以编程方式打印(在确定分布后)参数值的键值对。

但是我不想为每一个可能的发行版编写一个打印例程。

2 个答案:

答案 0 :(得分:2)

inspect _pdf方法似乎有效:

import inspect

# keys
[p for p in inspect.signature(stats.beta._pdf).parameters if not p=='x']
# ['a', 'b']

# keys and values
dist = stats.alpha(a=1)
inspect.signature(stats.alpha._pdf).bind('x', *dist.args, **dist.kwds).arguments
# OrderedDict([('x', 'x'), ('a', 1)])
# 'x' probably doesn't count as a parameter

答案 1 :(得分:0)

最后我做的是:

    >>> file=open('nums.txt','rb')
    >>> file.seek(15,0)
    15
    >>> file.read(1).decode('utf-8')
    'P'
    >>> file.seek(8,1)
    24
    >>> file.read(1).decode('utf-8')
    'Y'
    >>> file.seek(-7,2)
    19
    >>> file.read(1).decode('utf-8')
    'T'
    >>> file.seek(7,0)
    7
    >>> file.read(1).decode('utf-8')
    'H'
    >>> file.seek(6,1)
    14
    >>> file.read(1).decode('utf-8')
    'O'
    >>> file.seek(-2,1)
    13
    >>> file.read(1).decode('utf-8')
    'N'

其中pd_series是拟合数据的大熊猫系列。