用新值替换字典中的旧值

Replacing old values in dictionary with new values

我有一个字典如下:

d =
{1.0: 86, 2.0: 4406, 3.0: 523, 4.0: 324, 5.0: 1641, 6.0: 863}

我想将字典中存在的值缩放到范围 (0,255) 并将缩放后的值替换为旧值。为此,我使用 sklearn 中的 MinMaxScaler。 我执行以下操作:

MinMaxScaler(feature_range=(0, 255)).fit_transform(np.array(list(distance.values())).reshape(-1,1)).astype(int)

现在上面这行代码的结果是:

array([[  0],
       [254],
       [ 25],
       [ 14],
       [ 91],
       [ 45]])

我希望将字典中的值替换为上面显示的值(输出),即数组中存在的缩放值。所需的输出应如下所示:

d =
{1.0: 0, 2.0: 254, 3.0: 25, 4.0: 14, 5.0: 91, 6.0: 45}

我怎样才能做到这一点? 提前致谢!

由于新数组与字典大小相同,您可以遍历字典并替换每个元素:

for index, (key, value) in enumerate(d.items()):
    d[key] = array[index]