Numpy使用二维索引数组从一维数组中提取值

2024-10-01 07:10:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个名为values的m x n矩阵开始。然后,我使用np.argpartition来获得m行中每一行的k个最小索引,该索引在一个名为min_indices的新mxk矩阵中返回。这可能是错误的,但我就是这么做的: min_indices = np.argpartition(values, k, axis=1)[:, :k]。 接下来,我有一个nx1矩阵,叫做labelsArraymin_indices中的每个索引对应于这个标签数组中的一个索引。我想能够做的是将min_indices中的每个索引(就地或通过返回一个新矩阵)转换为其相应的标签(即,为所有m和k提供另一个mxk矩阵result{})。我可以通过编程实现这一点,但是有没有一种高效、简洁的方法在numpy中执行此转换

值如下所示:[[0.5,0.7,0.8,0.9,…n],[0.3,0.4,0.2,0.6,…n],…m]

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

标签阵列看起来像:[汽车,鸟,苍蝇,海报,…n]

给定k=2,结果应该是:[[fly,poster],[car,bird],[bird,poster],…n]

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


Tags: 示例错误np矩阵标签指数minvalues