Intermediate Network Analysis in Python
Eric Ma
Data Carpentry instructor and author of nxviz package
import networkx as nx G = nx.read_edgelist('american-revolution.txt')
list(G.edges(data=True))[0:5]
[('Parkman.Elias', 'LondonEnemies', {'weight': 1}),
('Parkman.Elias', 'NorthCaucus', {'weight': 1}),
('Inglish.Alexander', 'StAndrewsLodge', {'weight': 1}),
('NorthCaucus', 'Chadwell.Mr', {'weight': 1}),
('NorthCaucus', 'Pearce.IsaacJun', {'weight': 1})]
Barrett.Samuel LondonEnemies {'weight': 1}
Barrett.Samuel StAndrewsLodge {'weight': 1}
Marshall.Thomas LondonEnemies {'weight': 1}
Eaton.Joseph TeaParty {'weight': 1}
Bass.Henry LondonEnemies {'weight': 1}
list(G.nodes())
['product2', 'customer3', 'customer1', 'product3',
'customer2', 'product1']
list(G.edges())
[('product2', 'customer1'),
('product2', 'customer2'),
('customer3', ‘product1')]
cust_nodes = [n for n in G.nodes() if G.nodes[n]
['bipartite'] == 'customers']
cust_nodes
['customer3', 'customer1', 'customer2']
G_cust = nx.bipartite.projected_graph(G, cust_nodes)
list(G_cust.nodes())
['customer1', 'customer3', 'customer2']
list(G_cust.edges())
[('customer1', 'customer2')]
nx.bipartite.degree_centrality(G, cust_nodes)
{'customer1': 0.3333333333333333,
'customer2': 0.3333333333333333,
'customer3': 0.3333333333333333,
'product1': 0.3333333333333333,
'product2': 0.6666666666666666,
'product3': 0.0}
nx.degree_centrality(G)
{'customer1': 0.2,
'customer2': 0.2,
'customer3': 0.2,
'product1': 0.2,
'product2': 0.4,
'product3': 0.0}
Intermediate Network Analysis in Python