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