我很好奇
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)