Python 初始化numpy数组时,最好使用列表或元组指定形状?

Python 初始化numpy数组时,最好使用列表或元组指定形状?,python,arrays,performance,numpy,Python,Arrays,Performance,Numpy,我的教授总是使用列表;我很好奇这是否更快 我的意思是: np.zeros((10, 10)) 或者这个: np.zeros([10, 10]) 首选?一个比另一个快吗?差别显然是微不足道的,但元组基本上更倾向于优化。因为元组是不可变的对象,为了获得这一点,它们不得不放弃一些在某些情况下使其优化的特性。在这种情况下,您可以简单地对这两个代码段进行基准测试: In [81]: %timeit np.zeros((10, 10)) 447 ns ± 20.2 ns per loop (mean ±

我的教授总是使用列表;我很好奇这是否更快

我的意思是:

np.zeros((10, 10))
或者这个:

np.zeros([10, 10])

首选?一个比另一个快吗?

差别显然是微不足道的,但元组基本上更倾向于优化。因为元组是不可变的对象,为了获得这一点,它们不得不放弃一些在某些情况下使其优化的特性。在这种情况下,您可以简单地对这两个代码段进行基准测试:

In [81]: %timeit np.zeros((10, 10))
447 ns ± 20.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

In [82]: %timeit np.zeros([10, 10])
491 ns ± 3.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

它表明使用列表的速度要慢50纳秒,这对您的日常编程任务没有任何影响。除非你是量子物理学家

没关系,也没有理由在意。