如何在np.ndarrays列表上映射字典?
我有一个包含一系列键和值的字典。它看起来像这样:
{1: 0.5,
2: 0.51,
3: 0.34,
4: 0.38,
5: 0.4,
6: 0.27,}
另外,我有一个包含一系列numpy数组的列表对象,如下所示:
[array([1,2,3]),
array([4,3,5,6]),
array([1,4,6,2,3])]
我想在数组上映射字典,以用字典中相应的键值替换每个数组中的每个值。它会产生这样的结果:
[array([0.5,0.51,0.34]),
array([0.38,0.34,0.4,0.27]),
array([0.5,0.38,0.27,0.51,0.34])]
最后,我想采用上述结构中每个数组的均值,并将此值附加到数据框。
有什么建议吗?
答案 0 :(得分:0)
这是一个解决方案。
import numpy as np
d = {1: 0.5,
2: 0.51,
3: 0.34,
4: 0.38,
5: 0.4,
6: 0.27,}
lst = [np.array([1,2,3]),
np.array([4,3,5,6]),
np.array([1,4,6,2,3])]
lst2 = list(map(np.vectorize(d.get), lst))
# [array([ 0.5 , 0.51, 0.34]),
# array([ 0.38, 0.34, 0.4 , 0.27]),
# array([ 0.5 , 0.38, 0.27, 0.51, 0.34])]