Python deepcopy() 与仅根据 运行 时间速度启动一个 numpy 数组?

Python deepcopy() vs just initiating a numpy array in terms of run-time speed?

我很好奇

elevation_arr = numpy.zeros([900, 1600], numpy.float32)
climate_arr = copy.deepcopy(elevation_arr)
rainfall_arr = copy.deepcopy(elevation_arr)

执行得更快或更慢
elevation_arr = numpy.zeros([900, 1600], numpy.float32)
climate_arr = numpy.zeros([900, 1600], numpy.float32)
rainfall_arr = numpy.zeros([900, 1600], numpy.float32)

numpy_zeros 对于较小的数组表现稍好,对于较大的数组表现更好,如下所示

import copy
import numpy as np

def deep_copy():
    elevation_arr = np.zeros([900, 1600], np.float32)
    climate_arr = copy.deepcopy(elevation_arr)
    rainfall_arr = copy.deepcopy(elevation_arr)
    return 

def numpy_zeros():
    elevation_arr = np.zeros([900, 1600], np.float32)
    climate_arr = np.zeros([900, 1600], np.float32)
    rainfall_arr = np.zeros([900, 1600], np.float32)
    return

%timeit deep_copy()
# 4.13 ms ± 585 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit numpy_zeros()
# 3.01 ms ± 195 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

对于 10000 x 10000 阵列,以下是计时。 numpy_zeros 完全优于

%timeit deep_copy()
# 569 ms ± 50 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

%timeit numpy_zeros()
# 15.6 µs ± 1.38 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)