向量化函数

自定义的 sinc 函数:

```import numpy as np

def sinc(x): if x == 0.0: return 1.0 else: w = np.pi * x return np.sin(w) / w

</div>
</div>

作用于单个数值:

<div markdown="1" class="cell code_cell">
<div class="input_area" markdown="1">
```sinc(0.0)

但这个函数不能作用于数组:

```x = np.array([1,2,3]) sinc(x)

</div>
</div>

可以使用 `numpy` 的 `vectorize` 将函数 `sinc` 向量化,产生一个新的函数:

<div markdown="1" class="cell code_cell">
<div class="input_area" markdown="1">
```vsinc = np.vectorize(sinc)
vsinc(x)

其作用是为 x 中的每一个值调用 sinc 函数:

```import matplotlib.pyplot as plt %matplotlib inline

x = np.linspace(-5,5,101) plt.plot(x, vsinc(x)) ```

因为这样的用法涉及大量的函数调用,因此,向量化函数的效率并不高。