用于线性代数的scipy和numpy的替代方案是什么?

12

有没有一个轻量级的Python库可以替代numpy,用于进行线性代数计算? 我只需要矩阵乘法、加法、求逆矩阵和转置等操作。

为什么要这样做呢?

我已经厌倦了尝试安装numpy/scipy的过程——很难让它正常工作。无论我是编译还是从预构建的二进制文件安装,都似乎从来没有安装成功过(特别是因为我有两台机器,一台运行Linux,一台运行Windows)。有没有一种“正常”的安装程序,就像其他应用程序那样简单易用呢?


1
也许有人可以帮助您解决安装问题。您尝试过超级包吗?(在此处和此处)。如果尝试过,出了什么问题? - Marcelo Cantos
你需要进行大量计算,还是只是一堆示例矩阵?前几天我刚用纯Python编写了一些矩阵操作代码。从性能方面来说毫无用处,但在其他方面完成了工作,我可以在某个地方将其公开。 - jsbueno
好的 - 我已经上传了我的代码 - 在下面检查答案。 - jsbueno
安装Numpy和Scipy的预编译二进制文件非常简单。请确保您无法找到其他库来替代它们。 - Developer
1
我也在寻找一个轻量级的版本,因为使用numpy在用py2exe转换时会创建一个巨大的分发包,所以这是非常值得期望的。 - Siwel
显示剩余2条评论
7个回答

3
我很惊讶没有人提到SymPy,它完全使用Python编写,不需要像Numpy一样进行编译。
还有tinynumpy,它是Numpy的纯Python替代品,但功能有限。

SymPy性能讨论:https://docs.sympy.org/latest/modules/numeric-computation.html - djvg

2

我明白你的问题,我也曾经遇到过。Numpy/scipy是非常好的库,但安装问题有时会妨碍它们的使用。

另外,据我了解,好用的(易于使用的)选项并不是很多。我所知道的唯一可能更容易的解决方案是 "Yet Another Matrix Module"(请参见 python.org 上的NumericAndScientific/Libraries列表)。我不知道这个库的状态(稳定性、速度等)。长期来看,您的需求可能会超过任何简单的库,最终您还是要安装 numpy。

使用其他库的另一个明显缺点是您的代码可能与 numpy 不兼容,numpy 是 python 中线性代数的事实标准库。请注意,numpy 已经经过了大量优化 - 速度不是您在其他库中保证得到的东西。

我建议您花更多的时间解决安装/设置问题。其他选择可能会更糟糕。


我也曾经有过同样的经历。Python和Windows在许多方面都不兼容,这太糟糕了。 - jsalonen
2
一直使用Python+Windows,从未遇到过问题。但是这个numpy/scipy组合似乎真的搞砸了它。 - Andriy Drozdyuk
2
我必须不同意。如果Python在Windows上运行得很好,为什么Python的文档中有一个完整的章节专门解答有关Windows的常见问题(而其他操作系统则没有)?http://docs.python.org/faq/windows.html - jsalonen
Python+Numpy+Scipy+...在Windows上运行非常完美,从未遇到任何问题。 - Developer
2
Anaconda是在Windows上安装numpy和scipy的完美方式。https://www.continuum.io/downloads - JackOrJones

2
鉴于您的问题,我决定将矩阵代码从我使用它的地方分离出来,并放在一个公共可访问的位置 -
因此,这基本上是一个纯Python的Matrix类的即席实现,可以执行加法、乘法、矩阵行列式和矩阵求逆 - 应该会有一些用处 -
由于它是纯Python,不必担心性能,因此不适合进行任何真正的计算 - 但它足以用于以交互方式玩弄矩阵,或者矩阵代数远非代码的关键部分的情况。
存储库在这里, https://bitbucket.org/jsbueno/toymatrix/ 您可以直接从这里下载: https://bitbucket.org/jsbueno/toymatrix/downloads/toymatrix_0.1.tar.gz

谢谢,不过numpy真的非常方便。 - Andriy Drozdyuk

1

你试过anaconda吗?https://www.anaconda.com/download 这将使安装这些软件包变得容易。

conda install -c conda-forge scipy

conda install -c conda-forge numpy

除了在linux/mac/linux中为您提供一种轻松的安装方式外,还可以管理虚拟环境。


0


0

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

如果这样还不行,您可以更新您的答案,提供更多关于您正在使用的系统类型(Linux、Mac、Windows)、Python/Numpy版本以及您如何访问它的信息,这样就更容易帮助您了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接