【发布时间】:2020-04-07 22:11:30
【问题描述】:
我有一个n x nnumpyfloat64sparse matrix(data,其中n = 44),其中行和列是图形节点,值是边权重:
>>> data
<44x44 sparse matrix of type '<class 'numpy.float64'>'
with 668 stored elements in Compressed Sparse Row format>
>>> type(data)
<class 'scipy.sparse.csr.csr_matrix'>
>>> print(data)
(0, 7) 0.11793236293516568
(0, 9) 0.10992000939300195
(0, 21) 0.7422196678913772
(0, 23) 0.0630039712667936
(0, 24) 0.027037442463504143
(0, 27) 0.16908845414214152
(0, 28) 0.6109227233402952
(0, 32) 0.0514765253537568
(0, 33) 0.016341754080557713
(1, 6) 0.015070325434709386
(1, 10) 9.346673769086203e-05
(1, 11) 0.2471018034781923
(1, 14) 0.0020684269551621776
(1, 18) 0.015258704502643251
(1, 20) 0.021798149289490358
(1, 22) 0.0087026831764125
(1, 24) 0.1454235884185166
(1, 25) 0.022060777594183015
(1, 29) 0.9117391202819067
(1, 30) 0.018557883854566116
(1, 31) 0.001876070225734826
(1, 32) 0.025841354399637764
(1, 33) 0.014766488228364438
(1, 39) 0.002791226433410351
(1, 43) 1.0
: :
(41, 7) 0.8922099840113696
(41, 10) 0.015776226631920767
(41, 12) 1.0
(41, 15) 0.1839408706622038
(41, 18) 0.5151025641025642
(41, 20) 0.4599130036630037
(41, 22) 0.29378473237788827
(41, 33) 0.47474890700697153
(41, 39) 1.0
(42, 2) 1.0
(42, 10) 0.023305789342610222
(42, 11) 0.011349136164776494
(42, 12) 1.0
(42, 17) 0.886081346522542
(42, 18) 1.0
(42, 30) 1.0
(42, 40) 1.0
(43, 1) 1.0
(43, 6) 1.0
(43, 11) 0.039948959300013256
(43, 13) 1.0
(43, 14) 0.02669811947637717
(43, 29) 1.0
(43, 30) 1.0
(43, 36) 0.3381986531986532
我想将其转换为pandasdata frame,以便将其写入文件,其中列:node1, node2, edge_weight,因此将给出:
node1, node2, edge_weight
0, 7, 0.11793236293516568
0, 9, 0.10992000939300195
:, :, :
43, 36, 0.3381986531986532
知道怎么做吗?
注意:
>>> pandas.DataFrame(data)
给予:
0
0 (0, 7)\t0.11793236293516568\n (0, 9)\t0.109...
1 (0, 6)\t0.015070325434709386\n (0, 10)\t9.3...
和
>>> pandas.DataFrame(print(data))
给予:
(0, 7) 0.11793236293516568
(0, 9) 0.10992000939300195
所以我猜pandas.DataFrame(print(data)) 与我要找的很接近。
【问题讨论】:
-
如果你只打电话给
pandas.DataFrame()会发生什么? -
刚刚在我的帖子中添加了一个更新
-
你能分享数组本身吗?或者创建一些具有相同形状的测试数据的方法?
pandas.DataFrame(data)的输出真的很奇怪...... -
pandas.DataFrame(print(data))打印您的数据,然后创建一个空数据框。我不认为这是朝着正确方向迈出的一步。 -
你可以试试
type(data)吗?
标签: python pandas numpy dataframe