您好,我有Walk1d函數,然後我想計算cumsum。 我使用Walk1d = lambda n:sc.cumsum(steps(n))。結果是一個數組,但是當我嘗試Walk1d.cumsum()時,它不起作用,因爲type(Walk1d)是一個函數。 如果我嘗試sc.array(Walk1d).cumsum()它給我:在0x3798488> 我該如何處理?scipy - 如何將函數結果轉換爲數組
import matplotlib.pyplot as plt
import scipy as sc
steps=lambda m: 2*sc.random.random_integers(0,1,size=m)-1
Walk1d=lambda n: sc.cumsum(steps(n))
print(sc.array(Walk1d).cumsum())
謝謝!
Woudn't它更加清晰如果你使用普通的函數定義,比如'def steps(m):blah blah'?你的代碼確實充滿了單行程序,但我認爲這在這種情況下或者在Python中一般來說不是一個優點。如果您多行擴展,您的錯誤信息將會清晰(如果有的話),人們會發現更容易幫助您。只是一個想法。 – heltonbiker
我這樣做是因爲它的小程序和定義很小。 – George
@George:沒有什麼能阻止你寫'def steps(m):return 2 * sc.random.random_integers(0,1,size = m)-1'。仍然是一個班輪。 –