python - 具有稀疏矩阵的matshow

标签 python matplotlib scipy

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

矩阵太大,无法作为密集数组放入内存,因此我采用 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 适用于密集数组。对于稀疏数组,您可以使用 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()

enter image description here

关于python - 具有稀疏矩阵的matshow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748929/

相关文章:

python - 最小二乘拟合,混淆python scipy的赋值查询

python - 两个术语的相似性包含拼写错误

python - python 保护文件的最佳方法?

python - 无法删除 matplotlib polycollection 中的原点

python - jupyter 笔记本中的 canvas.mpl_connect

python - 矢量化 `signal.lfilter`

python - 稀疏矩阵中非零值的平均值?

python - App Engine 的未索引属性包含奇怪的代码

python - 在 django 网页中显示 ip 摄像头实时反馈

python - 如何在单个图中为不同的图获得不同的颜色线