MATLAB间谍的scipy等价物

Nit*_*tin 11 python matlab scipy

我一直在将用于isomap算法的代码从MATLAB移植到Python.我试图使用间谍功能可视化稀疏模式.

MATLAB命令:

spy(sparse(A));
drawnow;
Run Code Online (Sandbox Code Playgroud)

Python命令:

matplotlib.pyplot.spy(scipy.sparse.csr_matrix(A))
plt.show()
Run Code Online (Sandbox Code Playgroud)

我无法使用上面的命令在Python中重现MATLAB结果.使用仅具有非稀疏格式的A的命令可以得到与MATLAB非常相似的结果.但这需要很长时间(A为2000×2000).对于scipy,MATLAB等效的稀疏函数是什么?

Jan*_*Jan 16

也许这是你的版本matplotlib会给我带来麻烦,对我来说scipy.sparsematplotlib.pylab很合作.

请参阅下面的示例代码,该代码生成附加的"间谍"图.

import matplotlib.pylab as plt
import scipy.sparse as sps
A = sps.rand(10000,10000, density=0.00001)
M = sps.csr_matrix(A)
plt.spy(M)
plt.show()

# Returns here '1.3.0'
matplotlib.__version__
Run Code Online (Sandbox Code Playgroud)

这给出了这个情节: 在此输入图像描述


Nic*_*mer 6

我刚刚发布了Betterspy,可以说它在这里做得更好。安装

pip install betterspy
Run Code Online (Sandbox Code Playgroud)

并运行

pip install betterspy
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Kad*_*dir 5

使用较小的标记:

import matplotlib.pylab as pl
import scipy.sparse as sps
import scipy.io
import sys
A=scipy.io.mmread(sys.argv[1])
pl.spy(A,precision=0.01, markersize=1)
pl.show()
Run Code Online (Sandbox Code Playgroud)