gridmax, gridsize = 8, 150
grid=linspace(0, gridmax**1e-1, gridsize)**10
sigma= lambda s:0
我想评估网格上所有点的函数sigma。然而,我得到的只是一个零,而不是得到一个零数组。我想要一个零数组。救命啊!
答案 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
矢量化版本显然是最高性能的。