Учитывая матрицу смежности "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 ''
как решить ошибку?как я могу реализовать это эффективно?спасибо!