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 - Keras BatchNormalization,究竟什么是样本标准化规范化?

python - 用Python绘图

python - 如何在 Python 中绘制带有可变宽度 bin 的直方图?

python - 交换 numpy 数组中的两个值。

python - SciPy interp2D用于坐标对

scipy - 如何有效地将 scipy 稀疏矩阵转换为 sympy 稀疏矩阵?

python - Python如何访问socket()等OS API函数?

python - wxPython 在现有位图或图像上绘制文本

python - 使用python的时间戳查询

python - 如何在matplotlib中使用Humor Sans?