从索引数组中,在这些索引处创建一个值数组

From array of indicies, create an array of the values at those indicies

这是一个机器学习问题(当然是 Python)。

我有一个二维数组,行是一组点,列是这些点值的另一个一维数组的索引。

data = [[1,3,2], [3,3,1], [5,1,2]]
# yes there are duplicates in the labels
labels = [2,8,9,8,8,9]

我需要创建一个二维数组,它是原始数据数组,但其中的值现在是索引所代表的标签中的值。

new_data = [[8,8,9], [8,8,8], [9,8,9]]

我显然可以用 for 循环做到这一点。我在这里问,以防 numpy 或其他东西有这样的调用。

使用索引作为 indices:

np.array(labels)[np.array(data)]

advanced (integer) 索引的输出是索引数组 (data) 的形状。