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