【发布时间】:2012-06-25 05:48:44
【问题描述】:
作为用于数值计算的 Python 代码的一部分,我必须多次反转较大(稀疏)矩阵 (~100x100)。我真的很想加快程序的速度,建议我的方法之一是调用 C 中的子例程进行矩阵求逆步骤。
对于这项任务,是否有任何推荐的高效且经过良好测试的 C 例程?
谢谢。
【问题讨论】:
-
你看过 NumPy + SciPy 模块吗?
-
是的,NumPy 实际上是我现在正在使用的,每个数据点大约需要 5 秒才能完成,考虑到我需要很多点,这太慢了。我已经读到 NumPy 已经被认为是相当高效的,但是从像 C 这样的编译语言中调用某些东西会为我节省很多时间吗?感谢您的评论!
-
NumPy 和 SciPy 都有很多用 C 和/或 FORTRAN 编写的对时间要求严格的循环 - 我自己没有太多使用 C 语言制作 Python 接口的经验,我不确定你能改进多少自己写一个 - 矩阵求逆往往是一项昂贵的计算。话虽如此,一种流行的矩阵求逆算法似乎是高斯消元法。
-
哦,我现在明白了。我想我现在必须适应这种速度,并且更聪明地只对更重要的域进行采样。尽管如此,很高兴知道 NumPy 例程已经是更优化的选择之一 - Python 非常容易学习和使用!再次感谢!
-
您可以查看CSPARSE...
标签: c matrix-inverse