【发布时间】:2017-04-10 02:54:33
【问题描述】:
这是我的代码:
def topK(dataMat,sensitivity):
meanVals = np.mean(dataMat, axis=0)
meanRemoved = dataMat - meanVals
covMat = np.cov(meanRemoved, rowvar=0)
eigVals,eigVects = np.linalg.eig(np.mat(covMat))
我在上面最后一行的标题中得到错误。我怀疑与数据类型有关,所以,这里是来自 Spyder 的变量资源管理器的变量和数据类型的图像:
我尝试将 np.linalg.eig(np.mat(covMat)) 更改为 np.linalg.eig(np.array(np.mat(covMat))) 和 np.linalg.eig(np.array(covMat)),没有任何效果。有任何想法吗? (一个例子会很棒!)
【问题讨论】:
-
dtypeogcovMat是什么? -
如图所示,显示“对象”(36行36列)。
-
啊,那是
dtype。那么这很可能是你的问题。尝试使用np.array(covMat, dtype=float)。这种转换会给您带来错误吗? -
做到了 - 谢谢!如果您提交解决方案,我会检查您的答案是否正确。
标签: python arrays pandas numpy eigenvalue