2
如何優化涉及numpy數組的函數?函數和numpy數組預分配
使用案例:
def create_array_and_fill(a, b, N):
res = np.zeros(N, N)
res[0] = a
res[-1] = b
return res
c = create_array_and_fill(5, 9, 100)
不過,有時候,我事先知道,我需要使用(比如用於測試目的)的所有陣列的最大尺寸,有啥最好的方法?我應該預先分配嗎?最好的辦法是什麼?例如,我可以將一個預分配的數組傳遞給一個函數,以便該函數只是更新它而不是返回一個新的數組?
我的第一個想法如下,但當然,它帶有成本,我現在必須改變我所有的功能簽名。
def create_array_and_fill(a, b, N, res):
res[0] = a
res[-1] = b
# No more return here?
c = np.zeros(N, N)
create_array_and_fill(a, b, N, c)
這取決於功能。如果該函數設置爲允許傳遞預分配數組,則可以將預分配數組傳遞給函數。您需要更具體才能獲得更具體的答案。 – BrenBarn 2013-03-03 01:06:51
如果需要,我可以更改函數簽名,但我該怎麼做? – 2013-03-03 01:39:28