python-igraph无法保存特征矩阵 & python-igraph图转dgl图或pyg图

python-igraph无法保存特征矩阵

准确说,python-igraph无法在赋予attr时候赋予list,只能赋予一个个值,可参考igraph document。但如果一个node的feature就是多维的,就无法将这一attr保存在graph.vs[feature],而需要以字符串形式保存在graph[“node_feature”]
在这里插入图片描述

转化为其他格式图

那么要将这个igraph图转为pyg或dgl图的核心就是怎么去读取这段字符串代表的特征矩阵。主要就是反复使用string.split(),并将最终的string循环float得到float list。代码如下:

a="[' 22.000000, 32.941603, 75.110000,  1.700000,  3.405000,188.800000,  6.000000, 11.000000,  5.000000,  9.000000,  5.000000,  8.000000,  9.000000,  4.000000,  9.000000,  6.000000, 11.000000,  5.000000\n', ' 24.000000, 30.484920, 79.090000, -4.430000,  3.513000,221.700000,  9.000000,  9.000000,  6.000000, 11.000000,  8.000000,  5.000000,  6.000000,  7.000000, 11.000000,  8.000000, 10.000000,  6.000000\n']"
b="['  5.000000, 13.628302, 27.190000,  0.740000,  1.291000, 45.200000,  0.000000,  1.000000,  4.000000,  3.000000,  0.000000,  2.000000,  2.000000,  0.000000,  3.000000,  0.000000,  1.000000,  4.000000\n', '  5.000000, 13.789760, 24.780000,  3.930000,  1.160000, 35.100000,  0.000000,  2.000000,  3.000000,  1.000000,  2.000000,  2.000000,  4.000000,  0.000000,  1.000000,  0.000000,  2.000000,  3.000000\n', '  3.000000,  6.680248,  6.550000, -2.050000,  0.288000, 27.800000,  2.000000,  1.000000,  0.000000,  1.000000,  2.000000,  0.000000,  0.000000,  2.000000,  1.000000,  2.000000,  1.000000,  0.000000\n']"
#输出为一个list,list中每个元素也是一个list代表一个node的feature。
def igraph_node_feature2dgl_node_feature(input):
    a=input
    b = a.split('[')[1]
    c = b.split(']')[0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值