1

mpmath 関数を numpy 配列で機能する関数に変換したいと思います。たとえば、次のようなものがあるとしましょう

A=np.linspace(0,1,100)
besseli_vec = numpy.frompyfunc(mpmath.besseli, 2, 1)
Y=besseli_vec(0, A)

ただし、配列 A の値は mpmath 型 mpf になります。では、mpmath で関数を取得し、それを numpy 配列に作用できる関数に変換する最速/最良の方法は何ですか? それとも、mpf の配列を numpy float に変換するだけですか? 関数 float() は数値の変換には機能しますが、配列の変換には機能しません。

4

1 に答える 1

1
besseli_vec = numpy.frompyfunc(lambda *a: float(mpmath.besseli(*a)), 2, 1)

するべきです。mpmath の計算はおそらくラムダよりもはるかに遅くなるため、速度への影響はおそらく浮動小数点数の変換とほぼ同じになります。

于 2015-02-09T17:55:12.933 に答える