Python小小白

Python|Numpy数组计算

2018-11-28  本文已影响8人  5a41eb2ceec6

Numpy数组的计算有时很快,有时很慢,其中关键是利用向量化操作使得其变快。这一操作通常在Numpy的通用函数中实现。

1. 示例:缓慢的循环

i循环

Python 的默认实现(被称作 CPython)处理起某些操作时非常慢。这里处理瓶颈并不是运算本身,二是CPython在每次循环时必须做数据类型的检查和函数的调度。每次进行如上的倒数运算时,Python首先应该检查对象的类型,并且动态查找可以使用该数据类型的正确函数。

2. 通用函数

NumPy 为很多类型的操作提供了非常方便的、静态类型的、可编译程序的接口,也被称作向量操作。NumPy 中的向量操作是通过通用函数实现的。通用函数的主要目的是对 NumPy 数组中的值执行更快的重复操作。通过通用函数用向量的方式进行计算几乎总比用 Python 循环实现的计算更加有效,尤其是当数组很大时。

通用函数

通用函数有两种存在形式:一元通用函数和二元通用函数

2.1 数组的运算

数组的运算

地板除法:不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。

2.2 绝对值

绝对值

通用函数也可以处理复数。当处理复数时,绝对值返回的是该复数的幅度

2.3 三角函数

三角函数

2.4指数和对数

指数和对数

2.5专用的通用函数

专用

NumPy 和 scipy.special 中提供了大量的通用函数,这些包的文档在网上就可以查到,搜索“gamma function python”即可。

3. 高级的通用函数特性

3.1 指定输出

在进行大量运算时,有时候指定一个用于存放运算结果的数组是非常有用的。我们可以用通用函数的特性将计算结果直接写入到你期望的存储位置。所有的通用函数都可以通过 out 参数来指定计算结果的存放位置:


指定输出

3.2 聚合

任何通用函数的 reduce 方法。一个 reduce 方法会对给定的元素和操作重复执行,直至得到单个的结果。


聚合

3.3 外积

任何通用函数都可以用 outer 方法获得两个不同输入数组所有元素对的函数运算结果。

外积
上一篇 下一篇

猜你喜欢

热点阅读