2015-12-29 24 views
0

不幸的是,使用inspect不可能获得numpy函数参数,因为它们不是python代码。但是从手册中,我们可以轻松地检索像如何按摩numpy函数参数

uniform([low, high, size]) 
triangular(left, mode, right[, size]) 

说明要链接到Excel的目的,就足以将它们转换为

uniform(low=None, high=None, size=None) 
triangular(left, mode, right, size=None) 

我敢肯定,这种转换可以实现自动化,但我在Python中对字符串处理的知识很少,如何做到这一点的任何建议都会受到欢迎。

+1

他原来的'统一(低= 0.0,高= 1.0,大小=无)'有什么问题? –

+2

目前恐怕这太模糊,一般:你能更具体吗?你是什​​么意思,“手动”?你想在什么情况下做到这一点?你打算如何链接到Excel?提出一个具体的问题,理想情况下使用一些代码,或者至少是伪代码。 – strubbly

+0

“统一(低= 0.0,高= 1.0,大小=无)”没有错。但我不知道如何检索它“统一”。 –

回答

1

理想情况下,你会使用inspect来做到这一点(我建议你看看这个模块),但一个快速和有点脏的方法是解析你想要的方法的文档。这使大多数你想要的格式方法原型(取决于文档字符串是如何写的),然后你可以手工清理其他:

import numpy as np 

for method_name, method in np.random.__dict__.items(): 
    try: 
     docstring_lines = method.__doc__.split('\n') 
    except (AttributeError,): 
     continue 
    if len(docstring_lines) == 0: 
     continue 
    for line in docstring_lines: 
     if method_name in line: 
      print(line.strip()) 
      break 

例如

power(a, size=None) 
get_state() 
multivariate_normal(mean, cov[, size])  # <-- NB needs cleaning up 
gamma(shape, scale=1.0, size=None) 
random_sample(size=None) 
random_sample(size=None) 
standard_cauchy(size=None) 
choice(a, size=None, replace=True, p=None) 
... 
+0

样品看起来很好,除了清理仍然需要。无论如何,我会采取看看检查的建议 –