擅长:python、mysql、java
<p>有一个<a href="https://github.com/scipy/scipy/pull/5623" rel="nofollow">pull request</a>将矢量化球面贝塞尔函数例程合并到SciPy as <code>scipy.special.spherical_x</code>,其中<code>x = jn, yn, in, kn</code>。如果运气好的话,他们应该会把它放到0.18.0版本中。在</p>
<p>相对于<code>np.vectorize</code>(即for循环)的性能改进取决于函数,但可以是数量级的。在</p>
<pre><code>import numpy as np
from scipy import special
@np.vectorize
def sphj_vectorize(n, z):
return special.sph_jn(n, z)[0][-1]
x = np.linspace(1, 2, 10**5)
%timeit sphj_vectorize(4, x)
1 loops, best of 3: 1.47 s per loop
%timeit special.spherical_jn(4, x)
100 loops, best of 3: 8.07 ms per loop
</code></pre>