我有一个二元平方稀疏矩阵a,可以看作是图的邻接矩阵。在
现在考虑第二个二进制平方稀疏矩阵B,它可能具有不同的维数。在
我想建立一个算法来重新排序矩阵A,或者矩阵A的一组元素,以便最大化与矩阵B的重叠。在
下面是一个例子:
我在python中创建了一个随机稀疏矩阵B:
import scipy.spatial as spatial
import matplotlib.pyplot as plt
import numpy
coords_B = numpy.random.uniform(size=(20,3))*20
pdistmat = spatial.distance.squareform(spatial.distance.pdist(coords_B))
B = (pdistmat <= 8)
matshow(B)
colorbar()
现在我通过在B上添加噪声并添加一些行和列来构建矩阵A:
^{pr2}$现在我把矩阵A随机化了:
random_order = numpy.random.choice(A.shape[0], replace=False,
size=A.shape[0])
A_randomized = A[random_order][:, random_order]
matshow(A_randomized)
colorbar()
我想重新排序A_randomized
以最大限度地与B重叠,如下所示:
x, y = numpy.where(A==1)
scatter(y,30-x, label='A')
x, y = numpy.where(B==1)
x+=5
y+=5
scatter(y,30-x, marker='.', label='B')
legend()
我想在python中使用numpy和稀疏稀疏图书馆。在
目前没有回答
相关问题 更多 >
编程相关推荐