統計學家在這裏試圖弄清楚NumPy如何在飛行中工作。我需要使用SciPy的rv_discrete
來實現一些東西,但是我收到了錯誤,我已經回溯到NumPy中的以下行爲。這可能是超級基本的,但我很困惑。NumPy:使用ndarray總結函數值
我試圖理解爲什麼下面簡單的代碼不工作:
import numpy as np
def testfn(k):
if k == 1:
return 1
else:
return 1/k**2
def sumtest(k):
m = np.arange(1,k+1)
print(np.sum(testfn(m),axis=0))
sumtest(100)
如果我只是擺脫了條件語句的內部testfn()
與return 1/k**2
替換它,然後一切都很好。我可以直覺,這是因爲在sumtest()
我通過ndarray對象到testfn()
,但我無法掌握髮生在引擎蓋下的事情。
我之所以問這個是這是正是_cdfsingle()
是如何在SciPy的的rv_discrete
類編碼,我需要知道它是如何工作來定義新的隨機變量。
如果這太基本了,那麼我會很感激鏈接到某個地方開始。任何幫助將不勝感激。
編輯:根據下面的評論,讓我澄清我想發生什麼。我基本上想要testfn()
就好像它在傳遞給它的數組上進行分組操作一樣。因此,如果[1,2,3]
是傳遞給testfn()
的數組,則在一天結束時,我想要np.sum
返回數量1 + 1/4 + 1/9
。
我想用Numpy,你必須使用'np.vectorize()'而不是'map',但這基本上是一個竅門。我會首先嚐試一下我的全尺寸範例,看看它是否有效。謝謝! – gogurt