Numpy-引用多维数组的其他数组中的值



我正在Numpy和faiss(Facebook kNN库(中编写一个k近邻分类器。对于积分分类,我收到:

[[ 9240  4189  8702]
[ 2639  1052 13565]
[10464 14220 13980]
...
[12014 12063  1331]
[ 6719  5832  8827]
[ 1793  5455 12328]]

每一行都是y向量的索引。我需要在y向量中引用这个矩阵的值,所以例如,我将用矩阵中的9240交换y[9240]值,例如1(正类(。

我能在没有Python循环的情况下做到这一点吗?也就是说,这只能用Numpy完成吗?

您可以使用索引数组对一维数组进行索引。结果与索引数组的形状相同。例如:

>>> a
array([[1, 2, 2],
[3, 3, 2]])
>>> y
array([ 1000.,  1020.,  1040.,  1060.])
>>> y[a]
array([[ 1020.,  1040.,  1040.],
[ 1060.,  1060.,  1040.]])

最新更新