【问题标题】:When initializing a numpy array, is it better to specify the shape with a list or a tuple?初始化numpy数组时,用列表还是元组指定形状更好?
【发布时间】:2018-04-01 22:30:14
【问题描述】:

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

我的意思是:

np.zeros((10, 10))

或者这个:

np.zeros([10, 10])

喜欢?一个比另一个快吗?

【问题讨论】:

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

标签: python arrays performance numpy


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2019-07-02
    • 2020-12-28
    • 2011-06-05
    • 2015-05-31
    • 2021-12-19
    相关资源
    最近更新 更多