在网格上评估lambda

时间:2014-04-16 07:49:55

标签: python

gridmax, gridsize = 8, 150
grid=linspace(0, gridmax**1e-1, gridsize)**10  
sigma= lambda s:0

我想评估网格上所有点的函数sigma。然而,我得到的只是一个零,而不是得到一个零数组。我想要一个零数组。救命啊!

1 个答案:

答案 0 :(得分:2)

使用列表理解

grid = [sigma(e) for e in grid]
10000 loops, best of 3: 21.6 us per loop

使用numpy的vectorize

grid = np.vectorize(sigma)(grid)
100 loops, best of 3: 2.61 ms per loop

或矢量化lambda函数:

sigma = lambda s: np.zeros(s.shape)
grid = sigma(grid)
1000000 loops, best of 3: 667 ns per loop

矢量化版本显然是最高性能的。