如何让mpmath函数返回python float?

时间:2015-02-09 17:16:47

标签: python numpy mpmath

我想将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数组的函数,但是返回标准浮点数而不是mpmath浮点数?或者只是将mpf数组转换为numpy浮点数?函数float()用于转换数字,但不能转换数组。

1 个答案:

答案 0 :(得分:1)

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

应该这样做。 mpmath计算可能比lambda慢得多,因此速度影响可能大约只是浮点转换。