擅长:python、mysql、java
<p>将一个数组乘以一个mpf数字就可以了:</p>
<pre><code>import numpy as np
import mpmath as mp
small_number = mp.besseli(400, 2) # This is an mpf number
# Note that creating a list using `range` and then converting it
# to an array is not very efficient. Do this instead:
A = np.arange(600)
result = small_number * A # Array of dtype object, ie, it contains mpf numbeers
</code></pre>
<p>将包含mpf编号的两个数组按元素相乘也可以工作:</p>
<pre><code>result * result
</code></pre>
<p>所以你真正的问题是如何计算numpy数组中的mpmath函数。为此,我会使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.frompyfunc.html">^{<cd1>}</a>(前一段时间这是唯一的选择)。</p>
<pre><code>besseli_vec = np.frompyfunc(mp.besseli, 2, 1)
besseli_vec(0, A)
</code></pre>