python - 如何使用python将稀疏矩阵转换为密集形式

标签 python numpy matrix scipy word-frequency

我有以下矩阵,我认为它是稀疏的。我尝试使用 x.dense 格式转换为密集格式,但它从未奏效。关于如何执行此操作的任何建议?谢谢。

mx=[[(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (5, 3), (6, 4), (7, 2), (8, 5), (9, 1)], 
[(10, 1), (11, 5), (12, 2), (13, 1), (21, 1), (22, 1), (23, 1), (24, 1), (25, 1), (26, 2)], 
[(27, 2), (28, 1), (29, 1), (30, 1), (31, 2), (32, 1), (33, 1), (34, 1), (35, 1), (36, 1)]]

下面有人提出了解决方案,请问还有更好的办法吗?

def assign_coo_to_dense(sparse, dense):
    dense[sparse.row, sparse.col] = sparse.data

mx.todense()。 预期输出应以这种形式出现:[[2,1,1,1,1,3,4], [1,5,2,1,1,1,1], [2,1,1,1, 2,1,1,1]]

最佳答案

列表理解是最简单的方法:

new_list = [[b for _,b in sub] for sub in mx]

结果:

>>> new_list
[[2, 1, 1, 1, 1, 3, 4, 2, 5, 1], [1, 5, 2, 1, 1, 1, 1, 1, 1, 2], [2, 1, 1, 1, 2, 1, 1, 1, 1, 1]]

关于python - 如何使用python将稀疏矩阵转换为密集形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18034688/

相关文章:

python - django - 在几个时期内获得最大值

python - 如何在 Python 单元测试中模拟外部服务器?

在不可变对象(immutable对象)中修改可变对象的Pythonic方式

R - 沿矩阵对角线填充长度为 'n' 或更短的数据间隙

C++ OpenGL ES 2.0 矩阵变换——新手

python - 从 BeautifulSoup 结果集中提取 <li> 标签

Python:如何使类 `__call__` 方法接受 NumPy 数组和单个值?

python - Phylo BioPython 构建树

python - 加快简单距离计算速度

r - 如何生成矩阵 A) 每一行只有一个值 1; B)行总和为一