矢量化算法

时间:2018-03-13 07:57:47

标签: python numerical-methods

在使用Python 3的工程中的数值方法,作者:Jaan Kiusalaas,第25页,作者用两种方式解决了求和表达式:

第一种方法:使用循环。

第二种方法:通过从numpy导入范围来实现矢量化版本。

作者指出"矢量化算法执行得更快,但使用更多内存。" 任何人都可以解释矢量化算法的含义,为什么矢量化算法执行得更快,但使用更多内存?

1 个答案:

答案 0 :(得分:2)

  

矢量" (简化)是重写循环的过程,这样它不是处理数组的单个元素N次,而是同时处理(比如说)数组的4个元素N / 4次。   [What is “vectorization”?]

  • 矢量化代码更快,因为多个 操作并行执行。 相反,在循环版本中,这些< strong> 操作按顺序执行,

  • 矢量化代码使用更多内存,因为必须加载 所有操作的数据 ,它们是并行执行的进入记忆。相反,对于循环版本,只需要加载 一个操作的数据 (当前已执行)。

这是计算机科学中的典型权衡,称为Space–time tradeoff