diff options
Diffstat (limited to 'experiments/old_stuff/distances.py')
| -rw-r--r-- | experiments/old_stuff/distances.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/experiments/old_stuff/distances.py b/experiments/old_stuff/distances.py new file mode 100644 index 0000000..1834d36 --- /dev/null +++ b/experiments/old_stuff/distances.py @@ -0,0 +1,42 @@ +import networkx as nx +import sys +from collections import Counter + + +def build_graph(filename): + g = nx.Graph() + with open(filename) as fh: + fh.readline() + for line in fh: + i, j = map(lambda x: int(float(x)), line.strip().split(",")[1:]) + g.add_edge(i, j) + return g + + +def distances(g): + victims = set() + with open("vics.csv") as fh: + fh.readline() + for line in fh: + victims.add(int(line.strip().split(",")[1])) + level = 0 + seen = {} + nextlevel = {v: 1 for v in victims} + while level <= 3: + thislevel = nextlevel + nextlevel = {} + for v in thislevel: + if v not in seen: + seen[v] = level + nextlevel.update(g[v]) + level += 1 + return seen + + +if __name__ == "__main__": + g = build_graph(sys.argv[1]) + print g.number_of_nodes(), g.number_of_edges() + cnt = Counter() + for v, d in distances(g).iteritems(): + cnt[d] += 1 + print cnt.most_common() |
