Python 如何从网络图中删除随机数目的节点?

Python 如何从网络图中删除随机数目的节点?,python,networkx,Python,Networkx,以下是一个可能的解决方案,该解决方案基于一个小样本数据: import networkx as nx import itertools import numpy as np import os import sys import pylab as pl g = nx.read_edgelist('/home/suman/Desktop/dataset/Email-Enron.txt', create_using=None, nodetype=int,

以下是一个可能的解决方案,该解决方案基于一个小样本数据:

import networkx as nx
import itertools
import numpy as np
import os
import sys
import pylab as pl

g = nx.read_edgelist('/home/suman/Desktop/dataset/Email-Enron.txt',
                     create_using=None, nodetype=int, edgetype=int)

n = nx.number_of_nodes(g)

print n
这将返回为
G.nodes()

然后定义要从中的节点总数中提取的节点样本 您的图形(此处为3,您可以设置
int(NumberofNodes*0.1)

然后,您可以使用以下方法从图形中删除示例节点:

sample = 3
RandomSample = random.sample(ListOfNodes, sample)
调用
G.nodes()
可以获得:

G.remove_nodes_from(RandomSample)
编辑:
RandomSample=random.sample(节点列表,样本)出现问题
因为networkx从1开始节点编号。现在它应该可以正确地直接从节点列表中随机选择节点样本。

选择一些节点,您好,欢迎使用。您尝试了什么?我正在尝试从网络数据集中删除10%的节点,然后在删除节点和后生成新的edgelist然后计算分类系数。如何选择ramdom节点(比如10%noes)然后删除它?这里节点总数n=36692如何选择ramdom节点(比如10%的noes)然后删除它?谢谢,但这里有一个错误occour AttributeError:“module”对象没有属性“random”。你导入了random吗?是的,我导入了random。但是还有一个错误occour。还有一个问题是如何从nodelist中删除前10个节点?你能重现我的示例吗?对我来说,它是有效的,如果你有问题,请发布你的Python和NETWorkX版本。对不起,代码有问题,请参阅编辑并让我知道它是否正常工作。并且请避免在评论中问更多问题。一旦解决了实际问题,请考虑发布一个新问题。
sample = 3
RandomSample = random.sample(ListOfNodes, sample)
G.remove_nodes_from(RandomSample)
[1, 4, 5]