繁体   English   中英

线性代数的 scipy 和 numpy 的替代方案?

[英]Alternative to scipy and numpy for linear algebra?

是否有一个很好的(小而轻的)替代 numpy for python 来做线性代数? 我只需要矩阵(乘法、加法)、逆矩阵、转置矩阵等。

为什么?

我厌倦了尝试安装 numpy/scipy - 让它工作真是太糟糕了 - 它似乎从来没有正确安装(尤其是因为我有两台机器,一台 linux 和一台 windows):不管我做什么:编译它或从预先构建的二进制文件安装。 制作一个可以正常工作的“普通”安装程序有多难?

我很惊讶没有人提到SymPy ,它完全用 Python 编写,不需要像 Numpy 那样编译。

还有tinynumpy ,它是 Numpy 的纯 Python 替代品,功能有限。

听说过,我也去过。 Numpy/scipy 是非常棒的库,遗憾的是安装问题在使用时经常遇到问题。

此外,据我所知,也没有很多好的(更易于使用)选项。 我所知道的对您来说唯一可能更简单的解决方案是“另一个矩阵模块” (请参阅 python.org 上的NumericAndScientific/Libraries列表)。 我不知道这个库的状态(稳定性、速度等)。 可能是,从长远来看,您的需求将超过任何简单的库,无论如何您最终都会安装 numpy。

使用任何其他库的另一个显着缺点是您的代码可能与 numpy 不兼容,而 numpy 恰好是 Python 中线性代数的事实上的库。 还要注意 numpy 已经过大量优化 - 速度是其他库无法保证的。

我真的只是在解决安装/设置问题上付出更多努力。 替代方案可能要糟糕得多。

鉴于您的问题,我决定从我使用它的地方提取矩阵代码,并将其放在一个可公开访问的地方 -

所以,这基本上是一个 Matrix 类的纯 python ad-hoc 实现,它可以执行加法、乘法、矩阵行列式和矩阵求逆——应该有一些用处——

由于它是纯 Python 编写的,并且完全不担心性能,因此它不适合任何实际计算 - 但它足以以交互方式处理矩阵,或者矩阵代数远不是代码的关键部分.

存储库在这里, https://bitbucket.org/jsbueno/toymatrix/

你可以直接从这里下载: https : //bitbucket.org/jsbueno/toymatrix/downloads/toymatrix_0.1.tar.gz

对于仍然有问题的人:尝试 python 便携式: http : //portablepython.com/wiki/Download/

你有没有试过蟒蛇? https://www.anaconda.com/download这应该允许它轻松安装这些软件包。

conda install -c conda-forge scipy

conda install -c conda-forge numpy

除了为您提供一种在 linux/mac/linux 中安装它们的简单方法之外,您还将获得虚拟环境管理

我有时会遇到这个问题..不确定这是否有效,但我经常使用自己的帐户安装它,然后尝试在 IDE(在我的情况下为 komodo)中运行它,但它不起作用。 就像您的问题一样,它说找不到它。 我解决这个问题的方法是使用sudo -i进入 root 然后从那里安装它。

如果这不起作用,您能否更新您的答案,以提供有关您使用的系统类型(linux、mac、windows)、python/numpy 版本以及您如何访问它的更多信息,以便更容易获得帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM