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.sparse也matplotlib.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)
这给出了这个情节: 
我刚刚发布了Betterspy,可以说它在这里做得更好。安装
pip install betterspy
Run Code Online (Sandbox Code Playgroud)
并运行
pip install betterspy
Run Code Online (Sandbox Code Playgroud)
使用较小的标记:
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)