微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python中最近空间点组的质心

如何解决Python中最近空间点组的质心

我有一个 numpy 数组的行和列索引列表,如下所示。我需要找到并返回最近间隔点的质心的 row 和 col 索引。

(array([1389,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2338,2339,2340,2341,2342,2474,2475,2609,2609],dtype=int64),array([1562,1563,1562,1642,1643,1720,1878,1871,1876,1877,1880,1881,1882,1884,1872,1873,1879,1883,1885,1874,1875,1957,1958,1959,1951,1952,1953,1954,1955,1956,1961,1965,1950,1964,2037,2036,2030,2031,2033,2034,2035,2038,2039,2040,2043,2044,2032,2041,2110,2111,2113,2114,2115,2116,2118,2119,2120,2121,2122,2187,2188,2189,2190,2191,2193,2194,2196,2197,2198,2266,2267,2268,2269,2270,2271,2273,2274,2275,2276,2277,2278],dtype=int64))

这些应该返回 5 个质心行和列索引,因为在空间上有 5 个组。

我尝试使用距离公式计算距离。但这似乎很复杂。然后我尝试对每个 row 和 col 索引进行分组。但这似乎也不起作用,因为正在消除重复项。

解决方法

我找到了解决问题的方法。 可以使用简单的 k 均值分类计算点的空间质心。让 apply 成为我上传的输入数据集。我们需要重新排列数据集并直接使用它来查找集群。

x

from sklearn.cluster import KMeans X = np.array([[a,b] for (a,b) in zip(x[0],x[1])]) km = KMeans( n_clusters=9,init='random',n_init=10,max_iter=300,tol=1e-04,random_state=0 ) y_km = km.fit_predict(X) km.cluster_centers_ 将包含簇,而 y_km 将包含质心点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?