2015-12-29 26 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

樣品看起來很好,除了清理仍然需要。無論如何,我會採取看看檢查的建議 –