2016-11-25 39 views
2

这里是我的代码:的Python NumPy的类型错误:ufunc“ISFINITE”不支持输入类型

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的变量和数据类型从变量浏览器的图像:

enter image description here

我试图改变np.linalg.eig(NP。 mat(covMat))np.linalg.eig(np.array(np.mat(covMat)))np.linalg.eig(np.array(covMat)),没有任何作用。有任何想法吗? (一个例子会很棒!)

+0

什么'dtype' OG'covMat'? –

+0

如图所示,它显示“对象”(36行,36列)。 – swabygw

+1

啊,这就是'dtype'。那很可能是你的问题。尝试使用'np.array(covMat,dtype = float)'。那个转换会给你一个错误吗? –

回答

3

你的数组有个dtypeobject,但是这应该是一些浮点数dtype。使用例如

covMat = np.array(covMat, dtype=float) 

转换的dtype

相关问题