【问题标题】:Can Numpy just replace list? [duplicate]Numpy 可以替换列表吗? [复制]
【发布时间】:2020-11-02 18:54:49
【问题描述】:

非常基本的问题。 Numpy 比 list 更快,而且比 list 做得更多。

我可以创建一个类似的列表

A = [1,2,3,4]

我也可以用 NumPy 做类似的事情。

B = np.array([1,2,3,4])

如果 NumPy 可以完成 list 可以做的所有事情,那么使用 list 有什么特别的理由吗?

【问题讨论】:

  • 请注意,您在创建 B 时使用了一个列表。 B=np.array(A) 是等价的。而np.array(...) 的电话也不是小事。这需要时间;当A 很大时更多。

标签: python list numpy


【解决方案1】:

列表在追加和删除项目时通常更有能力。列表也没有类型,而 numpy 数组是。您可以将任何对象添加到列表中,但只能将某种类型的值添加到 numpy 数组中。

Numpy 数组针对数值矩阵计算进行了优化。它们服务于不同的目的。如果您希望简单地对类矢量对象进行数学运算,那么 numpy 是您的最佳选择。如果您需要存储不同类型和数量的信息,列表会更好,而且在许多情况下效率更高。

【讨论】:

    【解决方案2】:

    如果您想将各种数据类型放入数据容器中,那么您应该使用列表。数组可以存储一种类型的数据。并且数组通常适用于算术运算。尽管您可以使用 list 进行算术计算,但数组对于这些任务来说对程序员非常友好。例如:

    如果你有一个数字列表并且你想做一些基本的数学运算:

    x=[2,4,6,8,10]
    print(x/2)
    

    这将引发错误,例如“不支持列表的操作数”

    对数组执行此操作将成功输出预期的输出。

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 2015-12-24
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 2017-02-12
      • 2015-07-25
      相关资源
      最近更新 更多