Python Numpy TypeError:输入类型不支持ufunc'isfinite'
Posted
技术标签:
【中文标题】Python Numpy TypeError:输入类型不支持ufunc\'isfinite\'【英文标题】:Python Numpy TypeError: ufunc 'isfinite' not supported for the input typesPython Numpy TypeError:输入类型不支持ufunc'isfinite' 【发布时间】: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)),没有任何效果。有任何想法吗? (一个例子会很棒!)
【问题讨论】:
dtype
og covMat
是什么?
如图所示,显示“对象”(36行36列)。
啊,那是dtype
。那么这很可能是你的问题。尝试使用np.array(covMat, dtype=float)
。这种转换会给您带来错误吗?
做到了 - 谢谢!如果您提交解决方案,我会检查您的答案是否正确。
【参考方案1】:
您的数组有一个dtype
或object
,但这应该是一些浮点dtype
。使用例如
covMat = np.array(covMat, dtype=float)
转换dtype
【讨论】:
这对我也有帮助。我正在使用 shap 并且收到此类型转换错误。我检查了我的一个属性是对象更改为浮动并且它有效。感谢您的解决方案以上是关于Python Numpy TypeError:输入类型不支持ufunc'isfinite'的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 TypeError:'numpy.ndarray' 对象在 Python 上不可调用
Python - 重复数据删除问题:TypeError:不可散列的类型:'numpy.ndarray'
Python:两个数据帧的外部连接或合并给出错误:TypeError:unhashable type:'numpy.ndarray'
Python 酸洗错误:TypeError:对象泡菜未返回列表。 numpy的问题?
Python - 尝试使用 PIL 的 Image.fromarray 保存 numpy 数组时出现 TypeError