我的教授总是使用一个列表;我很好奇这是否更快。
我的意思是:
np.zeros((10, 10))
或者这个:
np.zeros([10, 10])
优选的?一个比另一个快吗?
答案 0 :(得分:1)
差异绝对是微不足道的,但元组基本上趋向于更加优化。因为元组是不可变对象,并且为了获得它们,它们必须放弃一些使它们在某些情况下得到优化的特性。在这种情况下,您可以简单地对两个片段进行基准测试:
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纳秒,这对您的日常编程任务没有任何影响。除非你是量子物理学家;)。