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



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

我的意思是:

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纳秒较慢,这对您的日常编程任务没有任何影响。除非您是量子物理学家;(。

最新更新