Я выполняю кластеризацию графов с помощью python. Алгоритм требует, чтобы данные, передаваемые из графа G
, были матрицей смежности. Однако, чтобы получить adjacency-matrix
как numpy-array
, например:
import networkx as nx
matrix = nx.to_numpy_matrix(G)
, я получаю ошибку памяти. Сообщение: MemoryError: Unable to allocate 2.70 TiB for an array with shape (609627, 609627) and data type float64
Однако у меня новое устройство (Lenovo E490), windows 64 бит, память 8 ГБ
Другая важная информация может быть:
Number of nodes: 609627
Number of edges: 915549
Вся история выглядит следующим образом:
Graphtype = nx.Graph()
G = nx.from_pandas_edgelist(df, 'source','target', edge_attr='weight', create_using=Graphtype)
Марковская кластеризация
import markov_clustering as mc
import networkx as nx
matrix = nx.to_scipy_sparse_matrix(G) # build the matrix
result = mc.run_mcl(matrix) # run MCL with default parameters
MemoryError