从scipy.sparse复制到新的稀疏矩阵

时间:2018-10-05 06:33:24

标签: python-3.x graph scipy sparse-matrix

给出一个邻接矩阵“ adj”。我需要建立一个新的矩阵“ nearsthub”,以使中心(nearsthub[i:])的第i行是adj[j:]的精确复制行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',并且   根据以下说明,无法将输入安全地强制转换为任何受支持的类型   强制转换为“安全”

如何解决错误?如何有效实施? 谢谢!

0 个答案:

没有答案