7

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

该矩阵太大而无法作为密集数组放入内存中,因此我将其保存为 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)
4

1 回答 1

10

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()

在此处输入图像描述

于 2013-09-11T20:27:22.007 回答