Numpy clip函数需要的时间是预期的两倍

2024-10-02 00:40:38 发布

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

我发现numpy clip函数的性能明显比自己用一个面具来做要慢得多(164us比74us左右)。clip函数是否做了一些额外的事情,使它花费了两倍的时间?在

%timeit growth.clip(-maxg, maxg)
10000 loops, best of 3: 164 µs per loop

%timeit growth[np.greater(growth,maxg)] = maxg
10000 loops, best of 3: 37.1 µs per loop

%timeit growth[np.less(growth,-maxg)] = -maxg
10000 loops, best of 3: 37 µs per loop

重置增长数组并按相反顺序进行测试后:

^{pr2}$

请注意,增长是一个相当大的阵列:

growth.shape
(12964, 7)

Tags: of函数numpyloopclipnp性能事情
1条回答
网友
1楼 · 发布于 2024-10-02 00:40:38

默认值numpy.clip返回一个新数组,其中包含剪裁后的值。使用参数out=growth使操作就位:

growth.clip(-maxg, maxg, out=growth)

这样,clip所花费的时间与您提到的备选方案更加相似。在

相关问题 更多 >

    热门问题