【发布时间】:2021-01-07 04:58:36
【问题描述】:
我有一个 numpy 数组的行和列索引列表,如下所示。我需要找到并返回最近间隔点的质心的行和列索引。
(array([1389, 1389, 1390, 1390, 1391, 1391, 1392, 1392, 1393, 1393, 1394,
1394, 1395, 1395, 1396, 1396, 1397, 1397, 1398, 1398, 1399, 1399,
1400, 1400, 1401, 1401, 1523, 1524, 1524, 1525, 1525, 1526, 1526,
1527, 1527, 1528, 1528, 1529, 1529, 1530, 1530, 1531, 1531, 1532,
1532, 1533, 1533, 1534, 1534, 1535, 1535, 1536, 1536, 1659, 1660,
1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
1672, 1929, 1930, 1931, 1932, 1932, 1932, 1932, 1932, 1932, 1933,
1934, 1934, 1934, 1934, 1934, 1934, 1934, 1935, 1935, 1935, 1935,
1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1936, 1936, 1936,
1936, 1936, 1936, 1936, 1936, 1937, 1937, 1937, 1937, 1937, 1937,
1937, 1937, 1937, 1937, 1937, 1937, 1937, 1938, 1939, 1940, 1940,
1941, 1942, 2064, 2064, 2064, 2065, 2066, 2066, 2067, 2067, 2067,
2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2069,
2069, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2071, 2071, 2071,
2071, 2071, 2071, 2071, 2071, 2071, 2071, 2071, 2071, 2072, 2072,
2072, 2072, 2072, 2072, 2072, 2072, 2073, 2073, 2075, 2075, 2075,
2076, 2076, 2077, 2199, 2200, 2200, 2201, 2201, 2202, 2202, 2202,
2202, 2202, 2202, 2202, 2202, 2202, 2202, 2203, 2203, 2203, 2203,
2203, 2203, 2204, 2204, 2204, 2204, 2204, 2205, 2205, 2205, 2205,
2205, 2205, 2205, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
2206, 2206, 2206, 2206, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
2207, 2208, 2208, 2209, 2209, 2210, 2211, 2211, 2211, 2212, 2338,
2338, 2338, 2338, 2338, 2338, 2338, 2338, 2338, 2338, 2338, 2339,
2339, 2339, 2339, 2340, 2340, 2340, 2340, 2341, 2341, 2341, 2341,
2341, 2342, 2342, 2342, 2342, 2474, 2474, 2474, 2474, 2474, 2474,
2474, 2474, 2474, 2474, 2474, 2475, 2475, 2475, 2475, 2475, 2475,
2475, 2475, 2475, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
2609, 2609, 2609, 2609], dtype=int64),
array([1562, 1563, 1562, 1563, 1562, 1563, 1562, 1563, 1562, 1563, 1562,
1563, 1562, 1563, 1562, 1563, 1562, 1563, 1562, 1563, 1562, 1563,
1562, 1563, 1562, 1563, 1642, 1642, 1643, 1642, 1643, 1642, 1643,
1642, 1643, 1642, 1643, 1642, 1643, 1642, 1643, 1642, 1643, 1642,
1643, 1642, 1643, 1642, 1643, 1642, 1643, 1642, 1643, 1720, 1720,
1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
1720, 1878, 1878, 1878, 1871, 1876, 1877, 1878, 1880, 1881, 1878,
1876, 1877, 1878, 1880, 1881, 1882, 1884, 1872, 1873, 1876, 1877,
1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1873, 1876, 1877,
1878, 1880, 1881, 1882, 1884, 1872, 1873, 1874, 1875, 1876, 1877,
1878, 1879, 1880, 1881, 1882, 1883, 1884, 1878, 1878, 1878, 1880,
1878, 1878, 1957, 1958, 1959, 1959, 1957, 1959, 1957, 1958, 1959,
1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1961, 1957,
1959, 1952, 1953, 1957, 1958, 1959, 1961, 1965, 1950, 1951, 1952,
1953, 1954, 1955, 1956, 1957, 1958, 1959, 1961, 1964, 1952, 1953,
1954, 1956, 1957, 1958, 1959, 1961, 1957, 1959, 1957, 1958, 1959,
1957, 1959, 1958, 2037, 2036, 2037, 2036, 2037, 2030, 2031, 2033,
2034, 2035, 2036, 2037, 2038, 2039, 2040, 2030, 2031, 2036, 2037,
2038, 2043, 2030, 2031, 2036, 2037, 2038, 2030, 2031, 2036, 2037,
2038, 2043, 2044, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
2038, 2039, 2040, 2041, 2035, 2036, 2037, 2038, 2039, 2040, 2043,
2044, 2036, 2037, 2036, 2037, 2037, 2036, 2037, 2038, 2036, 2110,
2111, 2113, 2114, 2115, 2116, 2118, 2119, 2120, 2121, 2122, 2110,
2111, 2120, 2121, 2110, 2111, 2120, 2121, 2110, 2111, 2113, 2120,
2121, 2110, 2111, 2120, 2121, 2187, 2188, 2189, 2190, 2191, 2193,
2194, 2196, 2197, 2198, 2199, 2187, 2188, 2189, 2190, 2191, 2194,
2197, 2198, 2199, 2266, 2267, 2268, 2269, 2270, 2271, 2273, 2274,
2275, 2276, 2277, 2278], dtype=int64))
这些应该返回 5 个质心行和列索引,因为空间上有 5 个组。
我尝试使用距离公式计算距离。但这似乎很复杂。然后我尝试对每个行和列索引进行分组。但这似乎也不起作用,因为重复项正在被消除。
【问题讨论】:
标签: python points closest centroid