首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从列表或元组创建新的numpy数组

从列表或元组创建新的numpy数组
EN

Stack Overflow用户
提问于 2019-05-21 03:38:43
回答 1查看 94关注 0票数 1

在创建新的numpy数组时,您可以像这样创建它们:

代码语言:javascript
复制
a = numpy.array((2, 5))
b = numpy.array((a[0] + 1, 10))

或者像这样:

代码语言:javascript
复制
a = numpy.array([2, 5])
b = numpy.array([a[0] + 1, 10])

哪种方式更好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 03:38:43

元组的速度要快10%左右。

代码语言:javascript
复制
>>> timeit.timeit("numpy.array((2, 5))", setup="import numpy")
0.9039838570024585
>>> timeit.timeit("numpy.array([2, 5])", setup="import numpy")
1.0044978570003877

我在numpy.array((a[0] + 1, 10))示例中也得到了相同的结果。dis工具揭示了差异的原因:

代码语言:javascript
复制
>>> dis.dis("numpy.array((2, 5))")
  1           0 LOAD_NAME                0 (numpy)
              2 LOAD_METHOD              1 (array)
              4 LOAD_CONST               0 ((2, 5))
              6 CALL_METHOD              1
              8 RETURN_VALUE
>>> dis.dis("numpy.array([2, 5])")
  1           0 LOAD_NAME                0 (numpy)
              2 LOAD_METHOD              1 (array)
              4 LOAD_CONST               0 (2)
              6 LOAD_CONST               1 (5)
              8 BUILD_LIST               2
             10 CALL_METHOD              1
             12 RETURN_VALUE

似乎元组在创建时被视为单个对象,而列表则需要构建。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56227154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档