我正在嘗試使用 networkx 包從圖中隨機(jī)刪除節(jié)點(diǎn)。第一個(gè)塊描述了圖的構(gòu)造,第二個(gè)塊給出了我必須從圖 H 中刪除的節(jié)點(diǎn)列表(20%、50% 和 70% 的刪除)。最后,我想要 3 個(gè)版本的基本圖 H,在列表或任何數(shù)據(jù)結(jié)構(gòu)中。塊 3 中的代碼為我提供了"None"類型的對(duì)象。最后一個(gè)塊顯示它適用于單個(gè)案例。我猜問題出在append函數(shù)中,它以某種方式返回類型為"None"的對(duì)象。我還覺得基礎(chǔ)圖 H 可能會(huì)在每次迭代后發(fā)生變化。有沒有辦法解決?任何幫助,將不勝感激 :)import networkx as nximport numpy as npimport random# node removals from Graphs at random# network constructionH = nx.Graph()H.add_nodes_from([1,2,3,4,5,6,7,8,9,10])H.add_edges_from([[1,2],[2,4],[5,6],[7,10],[1,5],[3,6]])nx.info(H)nodes_list = list(H.nodes)# list of nodes to be removedperc = [.20,.50,.70] # percentage of nodes to be removedrandom_sample_list = [] for p in perc: interior_list = [] random.seed(2) # for replicability sample = round(p*10) random_sample = random.sample(nodes_list, sample) interior_list.append(random_sample) random_sample_list.append(random_sample)# applying the list of nodes to be removed to create a list of graphs - not workinggraph_list = []for i in range(len(random_sample_list)): H1 = H.copy() graph_list.append(H1.remove_nodes_from(random_sample_list[i]))# list access - worksH.remove_nodes_from(random_sample_list[1])nx.info(H)最終輸出應(yīng)如下所示:[具有 20% 刪除節(jié)點(diǎn)的圖形、具有 50% 刪除節(jié)點(diǎn)的圖形、具有 7% 刪除節(jié)點(diǎn)的圖形] - 例如。列表
將圖形對(duì)象附加到 Python 中 networkx 列表的問題
HUH函數(shù)
2023-05-23 14:34:48