我有一组坐标,并将其绘制为散点图。然后将DBSCAN应用于这些点,以便将封闭在一起的点形成一个簇(注意:黑点被归类为噪声)。
现在,我想找到聚类的质心(通过将x和y坐标相加并求平均值)。我能够获得一组坐标(被分组到各自的簇中),它看起来像这样:
[[10. 75.]
[11. 74.]
[11. 75.]
[12. 73.]
[12. 74.]
[12. 75.]]
[[34. 49.]
[34. 50.]
[35. 48.]
[35. 49.]
[35. 50.]
[36. 48.]
[36. 49.]
[36. 50.]]
[[43. 78.]
[43. 79.]
[43. 80.]
[43. 81.]
[44. 78.]
[44. 79.]
[44. 80.]
[44. 81.]
[45. 78.]
[45. 79.]
[45. 80.]
[45. 81.]
[46. 78.]
[46. 79.]
[46. 80.]
[46. 81.]
[47. 78.]
[47. 79.]
[47. 80.]
[47. 81.]
[48. 79.]
[48. 80.]]
[[53. 63.]
[53. 64.]
[53. 65.]
[54. 63.]
[54. 64.]
[54. 65.]
[54. 66.]
[55. 63.]
[55. 64.]
[55. 65.]
[55. 66.]
[56. 63.]
[56. 64.]
[56. 65.]
[56. 66.]]
[[ 72. 115.]
[ 73. 114.]
[ 73. 115.]
[ 73. 116.]
[ 73. 117.]
[ 73. 118.]
[ 74. 113.]
[ 74. 114.]
[ 74. 115.]
[ 74. 116.]
[ 75. 113.]
[ 75. 114.]
[ 75. 115.]
[ 75. 116.]
[ 75. 117.]
[ 76. 113.]
[ 76. 114.]
[ 76. 115.]
[ 76. 116.]
[ 76. 117.]
[ 77. 115.]
[ 77. 116.]]
[[79. 56.]
[79. 57.]
[79. 58.]
[79. 59.]
[80. 57.]
[80. 58.]
[80. 59.]]
...,其中每个[[&]]标记群集的开始和结束。 因此,我想知道是否存在一种方法,可以将每组簇坐标分别保存到其单独的txt文件中(以便以后进行平均计算更容易),从而保存簇坐标集?
答案 0 :(得分:0)
如果您具有以下两个群集:
clusters_2d = [
[
[10, 75,],
[11, 74,],
[11, 75,],
[12, 73,],
[12, 74,],
[12, 75,],
],
[
[34, 49,],
[34, 50,],
[35, 48,],
[35, 49,],
[35, 50,],
[36, 48,],
[36, 49,],
[36, 50,],
]
]
为了将它们保存为单独的文件,您可以遍历坐标:
使用泡菜
import pickle
for i, x in enumerate(clusters_2d):
pickle.dump( x, open( f"cluster_{i}.pkl", "wb" ) )
然后为了读取这些文件之一:
cluster1 = pickle.load( open( "cluster_0.pkl", "rb" ) )
使用txt
for i, x in enumerate(2d_clusters):
with open(f'cluster_{i}.txt', 'w') as f:
for item in x:
f.write(f"{item}\n")
您可以将它们保存在pickle文件或txt中或任何您喜欢的文件中。