繁体   English   中英

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

[英]When initializing a numpy array, is it better to specify the shape with a list or a tuple?

我的教授总是使用清单。 我很好奇这是否更快。

我的意思是这样的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM