2018-11-14
阅读量:
848
通用函数介绍
NumPy 为很多类型的操作提供了非常方便的、 静态类型的、 可编译程
序的接口, 也被称作向量操作。 你可以通过简单地对数组执行操作来实
现, 这里对数组的操作将会被用于数组中的每一个元素。 这种向量方法
被用于将循环推送至 NumPy 之下的编译层, 这样会取得更快的执行效
率。
In[3]: print(compute_reciprocals(values))
print(1.0 / values)
[ 0.16666667 1. 0.25 0.25 0.125 ]
[ 0.16666667 1. 0.25 0.25 0.125 ]
如果计算一个较大数组的运行时间, 可以看到它的完成时间比 Python
循环花费的时间更短:
In[4]: %timeit (1.0 / big_array)
100 loops, best of 3: 4.6 ms per loop
NumPy 中的向量操作是通过通用函数实现的。 通用函数的主要目的是
对 NumPy 数组中的值执行更快的重复操作。 它非常灵活, 前面我们看
过了标量和数组的运算, 但是也可以对两个数组进行运算:
In[5]: np.arange(5) / np.arange(1, 6)
Out[5]: array([ 0. , 0.5 , 0.66666667, 0.75 , 0.8 ])
通用函数并不仅限于一维数组的运算, 它们也可以进行多维数组的运
算:
In[6]: x = np.arange(9).reshape((3, 3))
2 ** x
Out[6]: array([[ 1, 2, 4],
[ 8, 16, 32],
[ 64, 128, 256]])
通过通用函数用向量的方式进行计算几乎总比用 Python 循环实现的计
算更加有效, 尤其是当数组很大时。 只要你看到 Python 脚本中有这样
的循环, 就应该考虑能否用向量方式替换这个循环。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论