Python 根据np.where或类似规则将字典值设置为数组

Python 根据np.where或类似规则将字典值设置为数组,python,numpy,Python,Numpy,我有一个整型键和值的字典: dict1 = {100:1, 101:3, 103:2} 我有一个numpy阵列: arr1 = np.array([101, 103, 101, 101, 100, 103]) 我想要一个与arr1长度相同的数组,该数组具有dict中对应于arr1中每个条目的值。也就是说,我想要: arr2 = np.array([3, 2, 3, 3, 1, 2]) 我想我需要使用np.where但我是空白的 如何在python中实现这一点?您可以使用列表理解并转换为n

我有一个整型键和值的字典:

dict1 = {100:1, 101:3, 103:2}
我有一个numpy阵列:

arr1 = np.array([101, 103, 101, 101, 100, 103])
我想要一个与
arr1
长度相同的数组,该数组具有dict中对应于
arr1
中每个条目的值。也就是说,我想要:

arr2 = np.array([3, 2, 3, 3, 1, 2]) 
我想我需要使用
np.where
但我是空白的


如何在python中实现这一点?

您可以使用列表理解并转换为numpy数组

arr2 = np.array([dict1[x] for x in arr1])
TypeError:long()参数必须是字符串或数字,而不是“NoneType”
arr2 = np.vectorize(dict1.get)(arr1)