Python copy.copy()vs NumPy np.copy()

时间:2018-05-10 22:56:12

标签: python numpy copy

在任何情况下我都希望使用NumPy copy.copy()而不是Python的copy方法吗?据我所知,两者都创建浅拷贝,但NumPy仅限于数组。 NumPy是否有任何表现或特殊处理没有{{1}}解释?

2 个答案:

答案 0 :(得分:1)

numpy.copy允许使用order参数更多地控制结果的内存布局,并且它总是生成一个数组,即使给出了其他类似的数组。此外,您不必单独导入copy模块。

答案 1 :(得分:0)

是的,有副作用,对于float64类型,numpy代码比纯python快20%左右。

In [1]: import numpy as np

In [2]: from copy import copy

In [3]: arr = np.random.rand(10000, 10000)

In [4]: %timeit copy(arr)
535 ms ± 97.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [5]: %timeit np.copy(arr)
453 ms ± 19.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [6]: %timeit arr.copy()
456 ms ± 22 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)