' INT'对象没有属性' flatten'

时间:2016-06-07 16:55:13

标签: python python-3.x

我正在处理代码,这给我一个错误require_once('defuse-crypto.phar'); include('header.php'); $key = Key::createNewRandomKey(); echo $key->saveToAsciiSafeString(); 。我使用kmean算法k = 2来聚类我的数据(作为数据点列表传递)。

'int' object has no attribute 'flatten'
  

追踪(最近一次呼叫最后一次):

     

文件" C:\ Users \ shri ram \ Desktop \ summer_code_files \ ddpcr_analysis.py",第66行,in       k均值([23,43,7,89,1,10,101,243,34,2],2)     文件" C:\ Users \ shri \ ram \ Desktop \ summer_code_files \ ddpcr_analysis.py",第13行,in kmeans

     

clusters = euclidean_dist(数据,质心,群集)#将数据点分配给群集

     

UnboundLocalError:局部变量' cluster'在分配前引用

1 个答案:

答案 0 :(得分:0)

正如评论中所述,您尝试将flatten应用于一个int元素(而不是numpy数组)。试试

centroids.append([data[np.random.randint(0, len(data), size=1)]])

而不是

centroids.append(data[np.random.randint(0, len(data), size=1)].flatten().tolist())

此外,您应该将clusters初始化移至kmeans功能

...
def kmeans(data, k):
    clusters = [[] for i in range(k)]
    centroids = []
    centroids = randomize_centroids(data, centroids, k)  
    ...