矢量化
矢量化指的是用数组代替标量来操作数组里的每个元素。
numpy提供了vectorize函数,可以把处理标量的函数矢量化,返回的函数可以直接处理ndarray数组。
#函数矢量化 import math as m import numpy as np def foo(x, y): return m.sqrt(x ** 2 + y ** 2) x, y = 3, 4 print(foo(x, y)) # 5.0 x, y = np.array([3, 4, 5, 6]), np.array([4, 5, 6, 7]) # foo 函数矢量化 返回矢量化函数 foo_vec = np.vectorize(foo) print(foo_vec(x, y)) # [5. 6.40312424 7.81024968 9.21954446] print(np.vectorize(foo)(x, y)) # [5. 6.40312424 7.81024968 9.21954446]
numpy还提供了frompyfunc函数,也可以完成与vecto