web-dev-qa-db-fra.com

Python Numpy TypeError: ufunc 'isfinite' non pris en charge pour les types d'entrée

Voici mon code:

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))

J'obtiens l'erreur dans le titre sur la dernière ligne ci-dessus. Je soupçonne que cela a quelque chose à voir avec le type de données, alors, voici une image de la variable et du type de données de l'explorateur de variables dans Spyder:

enter image description here

J'ai essayé de changer np.linalg.eig (np.mat (covMat)) en np.linalg. eig (np.array (np.mat (covMat))) et to np.linalg.eig (np.array (covMat))) , rien ne fonctionne. Des idées? (un exemple serait génial!)

8
swabygw

Votre tableau a un dtype de object, mais cela devrait être une virgule flottante dtype. Utilisez par exemple.

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

pour convertir le dtype

11
jmd_dk