Skip to content

Instantly share code, notes, and snippets.

@davidADSP
Last active January 27, 2021 11:28
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save davidADSP/35648e480685c6b57ce1efad50170c26 to your computer and use it in GitHub Desktop.
Save davidADSP/35648e480685c6b57ce1efad50170c26 to your computer and use it in GitHub Desktop.
ego_graph
import networkx as nx
# SAMPLE DATA FORMAT
#nodes = [('tensorflow', {'count': 13}),
# ('pytorch', {'count': 6}),
# ('keras', {'count': 6}),
# ('scikit', {'count': 2}),
# ('opencv', {'count': 5}),
# ('spark', {'count': 13}), ...]
#edges = [('pytorch', 'tensorflow', {'weight': 10, 'distance': 1}),
# ('keras', 'tensorflow', {'weight': 9, 'distance': 2}),
# ('scikit', 'tensorflow', {'weight': 8, 'distance': 3}),
# ('opencv', 'tensorflow', {'weight': 7, 'distance': 4}),
# ('spark', 'tensorflow', {'weight': 1, 'distance': 10}), ...]
#BUILD THE INITIAL FULL GRAPH
G=nx.Graph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
#BUILD THE EGO GRAPH FOR TENSORFLOW
EG = nx.ego_graph(G, 'tensorflow', distance = 'distance', radius = 22)
#FIND THE 2-CONNECTED SUBGRAPHS
subgraphs = nx.algorithms.connectivity.edge_kcomponents.k_edge_subgraphs(EG, k = 3)
#GET THE SUBGRAPH THAT CONTAINS TENSORFLOW
for s in subgraphs:
if 'tensorflow' in s:
break
pruned_EG = EG.subgraph(s)
ego_nodes = pruned_EG.nodes()
ego_edges = pruned_EG.edges()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment