customer_index= for _ in rangelenfinal_clustersfor icluster in enumeratefinal_clusters for j in final_clustersi customer_indexiappendnpwherenpabsdataset - i 1e-10allaxis=10寻找每个点的索引值输出怎么都是空?
根据您提供的代码,可能存在以下问题:
-
在第二行代码中,您使用了变量名 i 来表示当前迭代的簇的索引值,但是在第三行代码中,又将变量 i 用作了迭代的数据点的索引值。这可能会导致代码出现错误。
-
在第三行代码中,您使用了“np.abs(dataset - i)”,这意味着您正在尝试通过将整个数据集减去一个整数来寻找与该整数相等的数据点。这显然不是您想要的。
-
在第三行代码中,您使用了“np.where((np.abs(dataset - i) < 1e-10).all(axis=1))[0]”来查找数据点的索引值。这种方法可能会出现问题,因为在实际数据中,数据点的值可能不完全相等,因此使用“==”来比较两个值可能更可靠。
为了解决这些问题,您可以尝试以下代码:
customer_index=[[] for _ in range(len(final_clusters))] for i,cluster in enumerate(final_clusters): for j in final_clusters[i]: index=np.where((dataset == j).all(axis=1))[0] if len(index)>0: customer_index[i].append(index[0])
这段代码将遍历每个簇以及簇中的每个数据点,并通过比较每个数据点的值来查找其在数据集中的索引值。如果找到了索引值,则会将其添加到相应的“customer_index”列表中
原文地址: https://www.cveoy.top/t/topic/e3yX 著作权归作者所有。请勿转载和采集!