问题标签 [sparse-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
288 浏览

c++ - sparse_vector 模板类:如何清理它?

我不确定这是否是一个好问题——如果不是,请关闭它。

我开始编写(使用boost::coordinate_vector作为起点)一个sparse_vector模板类,它有效地实现了一个类似向量的接口,但它是稀疏的。它实现了所有常见的向量操作和一个快速的稀疏迭代器,用于迭代集合元素。它还有一个快速版本的rotate. 我需要这个类,因为我有一个一次写入多次读取的用例,并且我使用了其中的许多sparse_vectors.

我没有编写模板类的经验,所以我知道有些事情我可以做得更好。我怎样才能提高这门课?

0 投票
1 回答
107 浏览

sorting - 在进行 PCG 求解器时,是否必须对稀疏矩阵的行进行排序?

我正在开发一些可以进行稀疏矩阵向量相乘的软件。矩阵以坐标格式存储(每个非零的行和列索引)。

他们正在执行排序操作,按该行的顺序对列索引进行排序(这是因为此 FEM 问题的某些边界条件)。这是否有必要发生?

0 投票
4 回答
12471 浏览

r - R中具有稀疏特征矩阵的大规模回归

我想在 R 中使用许多(例如 100k)特征进行大规模回归(线性/逻辑),其中每个示例在特征空间中相对稀疏——例如,每个示例约 1k 个非零特征。

看起来SparseMslm应该这样做,但我很难从sparseMatrix格式转换为slm友好的格式。

我有一个标签的数字向量y和一个sparseMatrix特征X\in {0,1}。当我尝试

我收到以下错误:

大概是因为slm想要一个SparseM对象而不是一个sparseMatrix.

是否有一种简单的方法可以a)SparseM直接填充对象或b)将a转换sparseMatrixSparseM对象?或者也许有更好/更简单的方法来做到这一点?

X(我想我可以使用and明确地编写线性回归的解决方案y,但如果能slm工作就好了。)

0 投票
3 回答
3389 浏览

matrix - 在非常大的稀疏矩阵上聚类?

我正在尝试在一个非常大的矩阵上进行一些(k-means)聚类。

该矩阵大约有 500000 行 x 4000 列,但非常稀疏(每行只有几个“1”值)。我想获得大约 2000 个集群。

我有两个问题: - 有人可以推荐一个开源平台或工具来做到这一点(也许使用 k-means,也许有更好的东西)?- 我怎样才能最好地估计算法需要完成的时间?我尝试过一次 weka,但几天后就放弃了这项工作,因为我不知道需要多少时间。

谢谢!

0 投票
1 回答
519 浏览

python - 在稀疏矩阵中找到 n 个最大数

我使用稀疏矩阵作为压缩数据的一种手段,当然有损失,我所做的是从所有大于指定阈值的值创建一个稀疏字典。我希望我的压缩数据大小成为我的用户可以选择的变量。

我的问题是,我有一个具有很多接近零值的稀疏矩阵,我必须做的是选择一个阈值,以便我的稀疏字典具有特定大小(或最终重建误差具有特定速率)这是我如何创建我的字典(我认为取自 stackoverflow >.< ):

如何找到阈值,使其等于我的数组(smat)的第 n 个最大值?

0 投票
4 回答
8868 浏览

python - python中的稀疏矩阵svd

有谁知道如何在 python 中对稀疏矩阵执行 svd 操作?scipy.sparse.linalg 中似乎没有提供这样的功能。

0 投票
3 回答
15368 浏览

python - 如何将 scipy.sparse 矩阵元素乘以广播的密集一维数组?

假设我有一个二维稀疏数组。在我的真实用例中,行数和列数都大得多(比如 20000 和 50000),因此当使用密集表示时它无法放入内存:

现在假设我有一个密集的一维数组,其中包含大小为 3 的所有非零分量(或在我的现实生活中为 50000):

我想使用 numpy 的通常广播语义来计算 a 和 d 的元素乘法。但是,scipy 中的稀疏矩阵属于 np.matrix:“*”运算符被重载以使其表现得像矩阵乘法而不是元素乘法:

一种解决方案是将“a”切换到“*”运算符的数组语义,这将给出预期的结果:

但我不能这样做,因为对 toarray() 的调用会实现不适合内存的“a”的密集版本(结果也会很密集):

知道如何在只保留稀疏数据结构并且不必在“a”的列上执行低效的 python 循环的情况下构建它吗?

0 投票
2 回答
5028 浏览

matlab - 稀疏与正常数组 Matlab

在 Matlab 中,如果我仍然需要对其进行大量计算,并且大约 25% 的数组是非零的,那么稀疏数组在什么时候比普通数组更好?

0 投票
3 回答
569 浏览

sparse-matrix - 在 C# 中实现存储稀疏数据的表的最有效方法是什么

我有一个存储非常稀疏数据的 DataTable,例如:

行数和列数可能超过 10^8。

如何以更有效的方式存储这些数据?

0 投票
4 回答
1110 浏览

c++ - 标准::向量> 用于稀疏矩阵结构还是其他?

我正在以压缩行格式实现稀疏矩阵类。这意味着我有固定数量的行,每行由许多元素组成(这个数字对于不同的行可能不同,但在矩阵初始化后不会改变。

是否适合通过向量向量来实现这一点,还是会以某种方式分割内存?

我应该如何实现这个分配,所以我将拥有一大块内存?

感谢您分享您的智慧!短剑