栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

复制numpy数组的速度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

复制numpy数组的速度

来自以下文档

numpy.copy

这等效于:

>>> np.array(a, copy=True)

另外,如果您查看源代码:

def copy(a, order='K'):    return array(a, order=order, copy=True)

一些时间:

In [1]: import numpy as npIn [2]: a = np.ascontiguousarray(np.random.randint(0, 20000, 1000))In [3]: %timeit b = np.array(a)562 ns ± 10.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)In [4]: %timeit b = np.array(a, order='K', copy=True)1.1 µs ± 10.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)In [5]: %timeit b = np.copy(a)1.21 µs ± 9.28 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)In [6]: a = np.ascontiguousarray(np.random.randint(0, 20000, 1000000))In [7]: %timeit b = np.array(a)310 µs ± 6.31 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)In [8]: %timeit b = np.array(a, order='K', copy=True)311 µs ± 2.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)In [9]: %timeit b = np.copy(a)313 µs ± 4.33 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)In [10]: print(np.__version__)1.13.3

出乎意料的是,简单地将参数显式设置为其默认值会改变的执行速度

np.array()
。另一方面,也许仅处理这些显式参数会增加足够的执行时间,以使小型数组有所作为。确实,从的源代码
numpy.array()
可以看到,当提供关键字参数时,还有更多的检查和更多的处理正在执行,例如see
gotofull_path
。如果未设置关键字参数,则执行会一直跳到
gotofinish
。这种开销(对关键字参数的额外处理)是您在小型阵列的计时中检测到的。对于较大的阵列,与复制阵列的实际时间相比,此开销微不足道。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号