我目前有这样的数据
0 1 2
0 Ho Chi Minh City Dalat 1146.72
1 Ho Chi Minh City Mui Ne 220.00
2 Mui Ne Dalat 340.00
我想创建一个可以显示双数组的矩阵
HCM Dalat Mui Ne
HCM 0 1146.72 220
Dalat 1146.72 0 340
Mui Ne 220 340 0
我的数据仓库中有更多城市。我可以理解邻接矩阵,但是不知道如何显示到邻接矩阵,并且代码可以理解HCM到HCM为0。
答案 0 :(得分:1)
这是使用numpy进行此操作的快速方法:
在以下代码中,d
是距离的numpy数组,就像在数据框中一样,n
是城市数。
d = np.array([1146.72, 220, 340])
n = 3
upperIndices = np.triu_indices(n, k=1)
lowerIndices = np.tril_indices(n, k=-1)
distanceMatrix = np.zeros((n,n))
distanceMatrix[upperIndices] = d
distanceMatrix[lowerIndices] = d
结果:
array([[ 0. , 1146.72, 220. ],
[1146.72, 0. , 340. ],
[ 220. , 340. , 0. ]])
请注意,这仅在正确配置了辩护清单之后才能起作用。
答案 1 :(得分:0)
x = np.zeros((n,n))
的numpy数组x[i,j]=d
希望这会有所帮助。