计算网格上的lambda

2024-04-26 21:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: lambda函数网格数组sigmagridlinspacegridsize
1条回答
网友
1楼 · 发布于 2024-04-26 21:41:08

使用列表理解

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

使用numpy的矢量化

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

矢量化版本显然是性能最好的。你知道吗

相关问题 更多 >