【问题标题】:matshow with sparse matrices稀疏矩阵的 matshow
【发布时间】:2013-09-11 18:44:46
【问题描述】:

如何可视化大型稀疏矩阵的稀疏模式?

矩阵太大,无法作为密集数组存储在内存中,因此我将其设为 csr_matrix 格式。当我尝试使用 pylab 的 matshow 时,出现以下错误:

ValueError: 需要多于 0 个值才能解包

想法?

例如:

import pylab as pl
import scipy.sparse as sp
from random import randint

mat = sp.lil_matrix( (4000,3000), dtype='uint8' )
for i in range(1000):
    mat[randint(0,4000),randint(0,3000)] = randint(0,10)

pl.figure()
pl.matshow(mat)

【问题讨论】:

  • 你能展示使用一些生成此错误的示例代码吗?怀疑你最好手工绘制补丁而不是使用matshow/imshow(我认为这会填充你的稀疏矩阵)。
  • scipy equivalent for MATLAB spy 的可能重复项

标签: python matplotlib scipy


【解决方案1】:

matshow 适用于密集阵列。对于稀疏数组,您可以使用spy:

import scipy.sparse as sps
import matplotlib.pyplot as plt

a = sps.rand(1000, 1000, density=0.001, format='csr')

plt.spy(a)
plt.show()

【讨论】:

  • 太棒了。谢谢女士们先生们。
猜你喜欢
  • 1970-01-01
  • 2018-01-19
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2021-11-25
相关资源
最近更新 更多