使用NumPy将一个数组索引为另一个数组

MRo*_*lin 2 python arrays numpy

鉴于一些数据

In [1]: import numpy as np
In [2]: x = np.array(['a', 'b', 'b', 'a'])
Run Code Online (Sandbox Code Playgroud)

并排序索引

In [3]: i = np.array(['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

我想找到索引中每个数据条目的位置

In [4]: # solution here
array([0, 1, 1, 0])
Run Code Online (Sandbox Code Playgroud)

这有点像分类.我不想在这里使用熊猫.我想在固定长度的字符串上这样做.我需要这个有点高效.

Ale*_*ley 5

你可以使用np.searchsorted:

>>> np.searchsorted(i, x)
array([0, 1, 1, 0])
Run Code Online (Sandbox Code Playgroud)

该函数找出x应放入每个元素的索引,i以便维护排序顺序.