更多关于:NumPy…
vectorize 函数
Numpy的 vectorize 函数能够实现将普通的python函数转化成具有向量化的功能。
简单来说就是,如果一个python函数只能对单个元素进行某种处理操作,经过vectorize 转化之后,能够实现对一个数组进行处理。
››› add_one([1, 2, 3]) Traceback (most recent call last): File '‹stdin›', line 1, in ‹module› File '‹stdin›', line 2, in add_one TypeError: can only concatenate list (not 'int') to list ››› vadd_one = np.vectorize(add_one) ››› vadd_one([1, 2, 3]) array([2, 3, 4])
需要注意的是,vectorize函数主要作用是提供便利,而不是性能。它的实现本质上是for循环。
更详细的内容请参见:
https://docs.scipy.org/doc/numpy1.13.0/reference/generated/numpy.vectorize.html
frompyfunc 函数
frompyfunc 函数可以实现类似的功能,不过它需要指定输入参数的个数与返回结果的个数。
››› uadd_one = np.frompyfunc(add_one, 1, 1) ››› uadd_one([1, 2, 3]) array([2, 3, 4], dtype=object)
更详细的内容请参见:
https://docs.scipy.org/doc/numpy1.13.0/reference/generated/numpy.frompyfunc.html#numpy.frompyfunc