我的博客

1.1.1.4、NumPy为什么很快

目录

为什么 NumPy 速度很快

矢量化

矢量化描述了代码中没有任何显示循环、索引等,其他优化使用预编译的 C 代码。

矢量化有许多优点,包括:

  • 矢量化代码更简洁,更易于阅读。
  • 更少的代码通常意味着更少的错误。
  • 代码更接近标准的数学符号(编写易用的数学结构代码更加容易)。
  • 矢量化会产生更多的 PythonIC 代码。如果没有矢量化,代码将充满低效和难以阅读的循环。

传播性

传播是用来描述操作隐式逐元素的术语。

在 NumPy 中所有的操作,包括算术、逻辑、位运算、函数等,都以这种隐式逐元素的方式进行表现。

在示例 4 中 ab 可以是相同形状的多维数组,或者是标量和数组,甚至可以是具有不同形状的两个数组,前提是较小的数组可以 “扩展” 为较大的数组

有关传播性更详细的规则,请参阅 numpy.doc.broadcasting

posted @ 2020-02-05 17:27  姜道义  阅读(608)  评论(0编辑  收藏  举报