|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import os
- import numpy as np
-
-
- # implemented with list because of memory issues
- def read_cascades(name: str, with_cascade_id=False):
- num_of_nodes = -1
- cascades = []
- finish_time = 0
- if os.path.isfile('./{}'.format(name)):
- with open(name, 'r') as outfile:
- for line in outfile:
- if line.strip() == '':
- pass
- elif ';' in line:
- cascade = []
- if with_cascade_id:
- stripped = line.strip().split(';')[1].split(',')
- for i in range(len(stripped)):
- if i % 2 == 0:
- cascade += [(int(stripped[i]), float(stripped[i + 1]))]
- if cascade[-1][1] > finish_time:
- finish_time = cascade[-1][1]
- else:
- # cascades += [[(int(event.split(',')[0]), float(event.split(',')[1])) for event in
- # line.strip().split(';')]]
- for event in line.strip().split(';'):
- cascade += [(int(event.split(',')[0]), float(event.split(',')[1]))]
- if cascade[-1][1] > finish_time:
- finish_time = cascade[-1][1]
- cascades += [cascade]
- else:
- num_of_nodes += 1
- print(cascades)
- print(num_of_nodes)
- print(finish_time)
- return num_of_nodes, finish_time, cascades
-
-
- def read_result(name: str, num_of_nodes: int = 32):
- mat = np.zeros([num_of_nodes, num_of_nodes])
- if os.path.isfile('./{}'.format(name)):
- with open(name, 'r') as outfile:
- for line in outfile:
- if '.' in line:
- stripped = line.split(',')
- i = int(stripped[0])
- j = int(stripped[1])
- mat[i][j] = float(stripped[-1])
- return mat
-
-
- def print_mat(mat, num_of_nodes=32):
- for i in range(num_of_nodes):
- for j in range(num_of_nodes):
- if mat[i][j] != 0:
- print((i, j, mat[i][j]), end=' ')
- print()
-
-
- def new_print(mat):
- for x in mat:
- print(x)
-
-
- def normalize(mat):
- mean = np.mean(mat)
- return np.vectorize(lambda val: 1. if val >= mean else 0.)(np.repeat(mat, 1, axis=1))
|