只有长度为1的数组才能转换为Python标量:是因为Diag还是Rowsum?

只有长度为1的数组才能转换为Python标量:是因为Diag还是Rowsum?,python,computer-vision,cluster-analysis,typeerror,scalar,Python,Computer Vision,Cluster Analysis,Typeerror,Scalar,我有两个非常简单的类:ncut和cluster。集群从ncut调用一些方法。您可以看到下面的代码。然而,当我运行cluster.py时,我得到一个TypeError,指出“只有length-1数组可以转换为Python标量。”我对Python非常陌生(几天),虽然我试图在堆栈溢出上找到其他类似的情况,但我似乎仍然无法解决这个问题 我得到的确切错误是: 第62行,集群D=diag(1/sqrt(rowsum+1e-6))TypeError:只有length-1数组可以转换为Python标量 在第6

我有两个非常简单的类:ncut和cluster。集群从ncut调用一些方法。您可以看到下面的代码。然而,当我运行cluster.py时,我得到一个TypeError,指出“只有length-1数组可以转换为Python标量。”我对Python非常陌生(几天),虽然我试图在堆栈溢出上找到其他类似的情况,但我似乎仍然无法解决这个问题

我得到的确切错误是:

第62行,集群D=diag(1/sqrt(rowsum+1e-6))TypeError:只有length-1数组可以转换为Python标量

在第62行,我有变量D:

# Create Laplacian matrix
rowsum = (sum(abs(S), axis=0))
D = diag(1 / sqrt(rowsum + 1e-6))
L = dot(D, dot(S,D))

# Compute eigenvector of L
U,sigma,V = linalg.svd(L)
我觉得这与diag或rowsum产生的不兼容性有关。请告诉我如何解决这个问题


谢谢

我想您已经导入了Numpy?是的--我已经在这两个类中导入了Numpy、Scipy和matplotlib。@acs254您可以提供一个最小的、完整的和可验证的示例吗?再见,谢谢。