如何将数组中的值替换为Python中列表中的值?

时间:2016-03-25 09:20:50

标签: python arrays numpy indexing

我有一个数组(numpy.ndarray类型),如

arr=array([[1, 5, 1],
          [4, 2, 0]])

和值列表:

values=['father','mother','sister','brother','aunt','uncle']

我想使用数组的项目作为列表值的索引,将数组 arr 中的数字替换为列表中的项目:{{ 1}}

这里有一个我想要的例子

arr[0,0]=values[arr[0,0]]

有没有优雅的pythonic方式来做到这一点?

感谢您提前帮助=)

2 个答案:

答案 0 :(得分:2)

您可以将HashPane转换为numpy数组,然后使用简单的索引:

values

详细了解索引http://docs.scipy.org/doc/numpy-1.10.0/reference/arrays.indexing.html

答案 1 :(得分:1)

使用numpy take函数:

In [64]: np.take(values,arr)
Out[64]: 
array([['mother', 'uncle', 'mother'],
       ['aunt', 'sister', 'father']], 
      dtype='<U7')

然后自动转换。