我正在处理代码,这给我一个错误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'在分配前引用
答案 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)
...