2016-11-25 38 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

相關問題