Numpy:将键数组转换为值数组

时间:2015-02-12 16:19:42

标签: python arrays numpy dictionary

我有一个数组和一个dict,其数组条目为键。如何获得具有与第一个数组中的键对应的值的条目的数组?没有使用简单循环的pythonic方法是什么。

例如 我有一个数组:

 a = np.array([['1','2','3'],['10','4','5'],['9','34','6']],dtype=np.object)

[['1' '2' '3']
 ['10' '4' '5']
 ['9' '34' '6']]

和dict:

d = {'1':23,'2':13,'3':3,'4':43,'5':230,'6':893,'7':98,'8':665,'9':33,'10':8797}

我想得到数组(对于键(例如'34')不在dict中,我应该有0):

 b = np.array([[23,13,3],[8797,43,230],[33,0,893]])

[[  23   13    3]
 [8797   43  230]
 [  33    0  893]]

1 个答案:

答案 0 :(得分:0)

确定找到了答案:

a_flat = numpy.ndarray.flatten(a)
b = [d[x] if d.has_key(x) else 0 for x in a_flat]
b = numpy.reshape(c,a.shape)
print b