无法将 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),如下:
- 打开贤者笔记本
- 点击"Upload"
- 点击"Browse"
- select
testnb.sws
- 点击"Upload worksheet"
- 点击"Evaluate"
评估此工作表中的代码单元格会导致
以下错误:
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)
让一切都很好地工作。
按照说明下载后 testnb.sws
在网站上
https://sourceforge.net/p/networksym/code/ci/master/tree/
我试图 运行 它在遗留 "Sage Notebook"
(不是Jupyter notebook),如下:
- 打开贤者笔记本
- 点击"Upload"
- 点击"Browse"
- select
testnb.sws
- 点击"Upload worksheet"
- 点击"Evaluate"
评估此工作表中的代码单元格会导致 以下错误:
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)
让一切都很好地工作。