скопировать из scipy.sparse в новую матрицу sparce строка за строкой - PullRequest
0 голосов
/ 05 октября 2018

Учитывая матрицу смежности "adj".Мне нужно построить новую матрицу "nearsthub" так, чтобы строка i хаба (nearsthub[i:]) была точной копией строки j из adj[j:], где j имеет наибольшую степень между i 'соседями.Я должен использовать scipy.sparse, поскольку матрица смежности огромна и очень редка.

dim=adj.shape[0]
nearsthub=None

cx=adj.tocoo()
hub={i:0 for i in cx.row}
for i,j,v in zip(cx.row, cx.col, cx.data):
    if hub[i] < adj[j,:].getnnz():
        hub[i]=j
for i in range(dim):
    t = hub[i]
    if nearsthub is None:
        nearsthub = sp.vstack(adj[t,:])
        nearsthub = nearsthub.tolil()
    else:
        nearsthub = sp.vstack(nearsthub, adj[t,:])

но я получаю ошибки в последней строке (я изменил nearsthub на lil csr coo).

TypeError: ufunc 'isnan' не поддерживается для типов ввода, и входы не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения '' safe ''

как решить ошибку?как я могу реализовать это эффективно?спасибо!

...