【发布时间】:2021-05-24 04:22:13
【问题描述】:
我试图在一组 10 行中找出一行的 3 个最近邻居(每 10 行是一个类),然后对这 3 个邻居进行平均。
我需要对一个 400 行的数组执行此操作,其中每个连续的 10 行属于一个类。
我想我已经设法为下面的“索引”中的每一行捕获了 3 个最近的邻居。 在下面的输出中,“indices”是一个 10x3 矩阵。 我只是不确定如何在原始 xclass 中引用每行“索引”的 3 个元素所引用的那些特定的 3 行,然后将它们相加(挑战),然后除以 3 以获得平均值(我假设这种划分是直截了当的)。
在以下回复后更新了此段: 基本上,X 的尺寸为 400x4096 索引可以是例如 [[1,3,5],[2,4,8].....] 我需要做的是平均 X 的第 1,3 和 5 行,并获得形状为 1x4096 的结果行。 类似地,平均 X 的第 2、4、8 行,并为该集合获取一个新行,依此类推,以获取索引中的每一行。 所以基本上特定行索引中的每个元素都引用 X 中的特定行。 '''
for counter in range(0,399,10):
#print(counter)
xclass=X[counter:counter+9]
yclass=y[counter:counter+9]
#print(xclass)
nbrs = NearestNeighbors(n_neighbors=3, algorithm='brute').fit(xclass)
distances, indices = nbrs.kneighbors(xclass)
#print(indices)
'''
欣赏任何见解。
【问题讨论】:
-
你的意思是 [counter:counter+10],因为 [counter:counter+9] 只切片 9 个项目?
-
是的,它的 10 行独立切片从 400 行的整体数据集 (X) 中形成一个类。