python - numpy 和 pysparse 浮点表示问题

标签 python numpy

我已经开始使用 numpy 以及连接 UMFPACK 的 pysparse 包,但是 numpy 的浮点结果存在问题。顺便说一下,这是结构问题的 lanczos 特征值求解器。

当我在 MATLAB 中执行相同的操作时,我得到了不同的结果,结果大约为 1e-6,1e-8 并且使用 MATLAB 的表示,我得到了正确的特征值。 NumPy 和 PySparse 结果也差不了那么远,至少在顺序级别上是这样,但是使用它们创建一个三对角矩阵以在其上查找特征值是问题的根源。我不明白出了什么问题,问题是浮点表示,但如果可能的话如何解决这个问题?我尝试使用“Float64”作为我的数据类型,但这并没有改变问题的结果。比如

q = ones(n, dtype = 'Float64')

还有一个,python最成熟的sparse包是什么,有的话提供了什么样的接口(interface)?如前所述,PySparse 乍一看对我来说还不错......

最佳答案

float64 是 Numpy 中的默认数据类型。您可以尝试使用 float128 以获得更高的精度,但请注意某些函数(基本上是 Windows 上的所有函数)无论如何都会将其强制转换为 float64

我建议使用 scipy.sparse 来解决稀疏特征向量问题。我已经尝试过 PySparse 和 scipy.sparse,我的结论是,尽管 PySparse 更易于使用,但 scipy.sparse 更成熟。

这是稀疏线性代数文档:http://docs.scipy.org/doc/scipy/reference/sparse.linalg.html

关于python - numpy 和 pysparse 浮点表示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179156/

相关文章:

python - 如何实现 Pygame 定时游戏循环?

python - 为什么numpy中正态分布的总和不同?

python - 如何有效地将 numpy ndarray 转换为元组列表?

python - 运行 Flask 命令时未找到错误解释器文件错误

Python - 如何更简洁地使用生成器?

python - NumPy C API 扩展导致内存使用过多

python - 使用 NumPy 将用户/项目评分转换为二维数组

python - 如何衡量 Python 中最佳拟合线的质量?

python - 在 Altair (Python) 中,有没有办法省略条形图的中间值?

python - 如何让 Python 程序通过下载和安装/更新所需的所有库来修复自身?