使用2d索引数组从1d数组中提取数值

时间:2020-02-24 05:22:31

标签: python numpy numpy-ndarray

我从一个称为values的m x n矩阵开始。然后,我使用np.argpartition来获取m行中每行的k个最小索引,并在称为min_indices的新m x k矩阵中返回。可能是错误的,但这是我所做的: min_indices = np.argpartition(values, k, axis=1)[:, :k]。 接下来,我有一个n x 1的矩阵,称为labelsArraymin_indices中的每个索引对应于此标签数组的索引。我想做的就是将min_indices中的每个索引转换(就地或通过返回新矩阵)到其相应的标签(即,给定另一个mxk矩阵result {{1 }}(对于所有m和k)。我可以通过编程方式完成此操作,但是有没有一种有效而简洁的方法可以在numpy中执行此转换?

值看起来像:[[0.5,0.7,0.8,0.9,... n],[0.3,0.4,0.2,0.6,... n],.... m]

因此,每行中有m个浮点值,总共有n行。因此,基本上每个测试示例(以行表示)具有到每个训练样本的列给定距离。

labelsArray看起来像:[汽车,鸟,飞行,海报,... n]

给定k = 2,结果应类似于:[[飞行,海报],[汽车,鸟],[鸟,海报],... n]

因此,对于每个测试示例,min_indices基本上应具有k最近邻的索引。然后,我想使用这些索引从每个测试示例的labelsArray获取每个邻居的标签。通过上面的示例进行解释。

0 个答案:

没有答案