python重复索引到列表或numpy数组

时间:2016-03-19 20:17:12

标签: python numpy

我有一组标签:

>> labels = ['Male', 'Female']

指数清单:

>> ii = [0,0,1,0,1,0,1,0,0]

我正在尝试获取与索引相对应的标签列表:

>> labels[ii]

这给了我一个错误。我期望得到的是:

['Male', 'Male', 'Female', 'Male', 'Female', 'Male', 'Female', 'Male', 'Male']

这在Matlab中很容易。

我想我可以使用列表理解:

[labels[i] for i in ii]

还有另一种更直接的方式来在python中获取它吗?

1 个答案:

答案 0 :(得分:2)

如果lablels是一个numpy数组,例如

labels=numpy.array( ['Male', 'Female'])

你可以简单地写

labels[ii]

输出

array(['Male', 'Male', 'Female', 'Male', 'Female', 'Male', 'Female',
       'Male', 'Male'], 
      dtype='|S6')