微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我该如何解决这个错误?: networkx.exception.NetworkXError: ('Adjacency matrix is not square.', 'nx,ny=(10, 11)')

如何解决我该如何解决这个错误?: networkx.exception.NetworkXError: ('Adjacency matrix is not square.', 'nx,ny=(10, 11)')

我正在尝试使用 numpynetworkx 数组创建图表,但出现此错误networkx.exception.NetworkXError: ('Adjacency matrix is not square.','nx,ny=(10,11)') 有人知道怎么解决吗?

My_Diz = {'X120213_1_0013_2_000004': array([[  0.,23.40378234,30.29631001,49.45217086,53.47727757,74.32949293,73.27188558,93.85556785,132.31971186,118.04532327,88.1557181 ],[  0.,0.,34.41617904,39.54024761,34.25713329,51.79037103,51.33810652,70.9900316,109.76561471,98.51724406,69.76728919],26.66788605,42.7133817,79.11779461,65.88325262,89.68664703,125.91837789,102.22926865,71.58316322],22.98401022,65.5730092,44.53195174,68.64071584,102.34029705,75.76571351,45.22368742],43.0377496,23.19245567,47.19664886,83.42653241,65.0762151,35.66216118],30.28626571,29.1448064,64.72235299,72.76481721,56.93798086],24.18622881,60.591058,49.69530936,27.61846738],39.02763348,46.26701103,40.06206332],44.72240673,62.0541588 ],30.69921172]])}

for k,v in My_Diz.items():
    G = nx.from_numpy_matrix(v)
    nx.draw(G)

解决方法

您的矩阵不是正方形。你必须给 networkx 一个方阵。 由于矩阵是 (n × n+1),而且它是三角形的,你可以这样做:

for k,v in My_Diz.items():
  r,c = v.shape
  M = np.zeros((c,c))
  M[:r,:c] = v
  M[:c,:r] += v.T
  G = nx.from_numpy_matrix(M)
  nx.draw(G)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。