从python调用LAPACK驱动程序/函数



我需要在python中使用lapack函数"DGGLSE"来解决带有约束的最小二乘问题。

我发现剖腹产的一些低级别功能可以在scipy中找到,如下所示http://docs.scipy.org/doc/scipy/reference/linalg.lapack.html但我感兴趣的一个没有包括在内,而且似乎lapack的大多数驱动程序代码无论如何都没有包括在内。

我想知道有没有办法。谢谢。-Yan

我对包装Fortran只有一点经验,但据我所知,包装SciPy中尚未包含的LAPACK函数的标准方法是使用NumPy中包含的工具f2py。一些基本说明可以在http://wiki.scipy.org/Cookbook/F2Py#head-

你也可以把它包裹在Cython里。通过这种方式,您可以编译Fortran文件并链接到它,如http://fortran90.org/src/best-practices.html#interfacing-使用python在那里,它描述了如何使用Cython或ctypes来包装Fortran子例程。该特定示例可在线获取,网址为https://github.com/certik/fortran90_question/tree/master/fcython_mesh请确保注意数组在内存中的排列方式(C连续与Fortran连续)。

?GGLSE例程系列包含在SciPy 1.0版本中。您可以首先调用?gglse_lwork以获得硬件上的最佳块大小,然后将其用作?gglse的参数。

您可以通过在ipython控制台上检查签名

scipy.linalg.lapack.dgglse?

或使用帮助等。

相关内容

最新更新