在 python/R 中使用稀疏矩阵的优点和缺点?

发布于 2024-11-02 11:50:55 字数 191 浏览 0 评论 0原文

我正在 python 中处理大型稀疏矩阵(从文本生成的文档特征矩阵)。仔细研究这些需要花费相当多的处理时间和内存,我想稀疏矩阵可以提供一些改进。但我担心使用稀疏矩阵库会让插入其他 python(以及 R,通过 rpy2)模块变得更加困难。

走过这座桥的人可以提供一些建议吗?在 python/R 中使用稀疏矩阵在性能、可扩展性和兼容性方面有哪些优缺点?

I'm working with large, sparse matrices (document-feature matrices generated from text) in python. It's taking quite a bit of processing time and memory to chew through these, and I imagine that sparse matrices could offer some improvements. But I'm worried that using a sparse matrix library is going to make it harder to plug into other python (and R, through rpy2) modules.

Can people who've crossed this bridge already offer some advice? What are the pros and cons of using sparse matrices in python/R, in terms of performance, scalability, and compatibility?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぽ尐不点ル 2024-11-09 11:50:55

在 Python 中使用稀疏矩阵本身可能并不是一个好主意。
您是否检查过 numpy / scipy 中的稀疏矩阵

Numpy 带来了主要使用 C 代码来在 Python 中提供性能提升的巨大好处。

根据我在 R 中进行文本处理的有限经验,其性能使其几乎无法用于探索性数据分析之外的任何用途。

无论如何,您不应该对稀疏矩阵使用普通列表,(可以理解)需要一段时间来仔细研究它们。

Using sparse matrices in Python might not be a great idea in itself.
Have you checked out sparse matrices in numpy / scipy?

Numpy brings the immense benefit of using mainly C code to provide performance gains in Python.

From my limited experience of doing text processing in R, the performance makes it pretty much unusable for anything beyond exploratory data analysis.

Regardless, you shouldn't be using vanilla lists for sparse matrices, it will (understandably) take a while to chew through them.

情归归情 2024-11-09 11:50:55

有多种方法可以表示稀疏矩阵(R SparseM 包的文档报告了 20 种不同的存储稀疏矩阵数据的方法),因此与所有解决方案的完全兼容性可能是不可能的。数字选项还表明,不存在万能的解决方案。

根据在这些矩阵上找到大量数字运算例程的位置(numpy 或 R),选择 numpy 稀疏矩阵或 R 的 SparseM(通过 rpy2)。

There are several ways to represent sparse matrices (documentation for the R SparseM package reports 20 different ways to store sparse matrix data), so complete compatibility with all solutions is probably out of question. The number options also suggests that there is no best-in-all-situations solution.

Pick either the numpy sparse matrices or R's SparseM (through rpy2) according to where your heavy number crunching routines on those matrices are found (numpy or R).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文