无法将 numpy 数组转换为 SageMath 中的图形

Cannot turn numpy array into a graph in SageMath

按照说明下载后 testnb.sws 在网站上
https://sourceforge.net/p/networksym/code/ci/master/tree/
我试图 运行 它在遗留 "Sage Notebook" (不是Jupyter notebook),如下:


评估此工作表中的代码单元格会导致 以下错误:

ValueError: This input cannot be turned into a graph

似乎在 Sage 中,np.array() 无效。

然而,当我使用

Aij32 = ([[0,1,0],[1,0,1],[0,1,0]])

而不是

Aij32 = np.array([[0,1,0],[1,0,1],[0,1,0]])

显示

AttributeError: 'list' object has no attribute 'copy'

如何克服这个问题?

将 numpy 数组转换为图表

如果a是表示邻接矩阵的numpy数组 对于图表,则代替

Graph(a)

一个可以用

Graph(matrix(a))

构建相应的图。

修复问题中提到的工作表

在问题中提到的工作表 testnb.sws 中, 替换此块

# get clusters
print "the orbits are:"
print data32.get_orbits()

由以下块

def get_orbits(a):
    r"""
    Return the orbits as a list of lists
    """
    if a._orbits is None:
        a._group, a._orbits = sg.Graph(
            matrix(a.get_adjacency_matrix())
            ).automorphism_group(orbits=True)
    return sg.copy(a._orbits)

# get clusters
print "the orbits are:"
print get_orbits(data32)

让一切都很好地工作。