【E-11】ValueError: setting an array element with a sequence

一、错误提示

kmeans = MiniBatchKMeans(n_clusters= i, batch_size=40, random_state=33) kmeans.fit(pcm_energys) #报错点

   

二、原因分析

网查了好多资料大致分为这几种情况:

  1. 输入到模型里的数据没严格转换成 np.arry()形式,
  2. 矩阵没对齐,个别行成员数量与其他不一致等。
  3. 数据dtype不对或者说不一致,应该统一成 np.float64, int或者其他。

第一种情况举例:

这里要求是彻底的转换,不含嵌套,比如arry([[list([12.0, 25.0, 32.0, 47.0, 54.0, 66.0]), list([20.0, 21.0, 36.0, 41.0, 53.0, 69.0])]), 这种情况不彻底,会继续报错。

应该转换成:arry([[12.0, 25.0, 32.0, 47.0, 54.0, 66.0], [20.0, 21.0, 36.0, 41.0, 53.0, 69.0]].

   

三、问题处理

本人为第二种情况,通过打印数据维度,发现输入的值的维度不一致。剔除掉维度不一致的数据即可。

原文地址:https://www.cnblogs.com/yifanrensheng/p/13460549.html