在Sklearn中,有没有一种干净的方法来转换字典列表?

Leo Jiang

我有一个要扩展的字典列表。要使用sklearn缩放器,我需要将字典变成列表。然后,我将列表重新转换成字典。这就是我在做什么:

keys = sorted(X[0].keys())
scaler = RobustScaler()
transformed = scaler.fit_transform([[x[k] for k in keys] for x in X])
X = [{k: x[idx] for idx, k in enumerate(keys)} for x in transformed]

有没有更清洁的方法?

拉尔夫

我对这个问题的看法得出了这个解决方案。它与您的非常相似,只是最后一部分使用dict()zip()外观更简洁(我认为)。

X_original = [
    {'a': 2, 'b': 3},
    {'a': 7, 'b': 6},
    {'a': 1, 'b': 7},
]

keys = sorted(X_original[0].keys())
X_values = [
    [d[k] for k in keys]
    for d in X_original]

scaler = RobustScaler()
X_transformed = scaler.fit_transform(X_values)

X_final = [
    dict(zip(keys, x))
    for x in X_transformed]

检查变量将显示正确的结果:

>>> X_original
[{'a': 2, 'b': 3}, {'a': 7, 'b': 6}, {'a': 1, 'b': 7}]
>>> X_values
[[2, 3], [7, 6], [1, 7]]
>>> X_transformed
[[ 0.         -1.5       ]
 [ 1.66666667  0.        ]
 [-0.33333333  0.5       ]]
>>> X_final
[{'a': 0.0, 'b': -1.5},
 {'a': 1.6666666666666667, 'b': 0.0},
 {'a': -0.3333333333333333, 'b': 0.5}]

您可能已经注意到,我喜欢分隔代码。如果您希望它紧凑,那么它仅与最后一行中的代码不同:

X_original = [
    {'a': 2, 'b': 3},
    {'a': 7, 'b': 6},
    {'a': 1, 'b': 7},
]
keys = sorted(X_original[0].keys())

scaler = RobustScaler()
X_transformed = scaler.fit_transform([[d[k] for k in keys] for d in X_original])
X_final = [dict(zip(keys, x)) for x in X_transformed]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种干净的方法来禁用 C++ 功能宏?

有没有一种更干净的方法来在合并中组织多个RXJS可观察对象?

有没有一种有效的方法来搜索非常大的文件中的字典?

有没有一种有效的方法来从字典中检索值

有没有一种快速的方法来在Python中生成字母的字典?

有没有一种干净的方法来声明每个元素具有相同值的Java数组?

有没有一种快速的方法来获取列表中的所有邻居元素?

有没有一种简单的方法来呈现列表项数组?

有没有一种方法来获取多个列表python的索引?

有没有一种干净的方法来删除常见的 ruby 对象初始化代码?

有没有一种更干净的方法来删除非字母数字字符并替换空格?

有没有一种通用的方法来获取Java中两个列表的交集?

有没有一种更Python的方法来查找图像中像素列表的末尾

有没有一种更快的方法来搜索表中的值?

有没有一种好的方法来冻结Javascript中的对象数组?

有没有一种更快的方法来在atom中执行拼写检查?

有没有一种简单的方法来计算库中记录的函数?

有没有一种简单的方法来显示JavaFX中的提示文本?

有没有一种快速的方法来替换 R 中的列值?

有没有一种快速的方法来绘制Scilab中的多个图

有没有一种方便的方法来在ruby中构建嵌套哈希

有没有一种通用的方法来指定jquery中的元素

有没有一种聪明的方法来隐藏 HTML 中的大量文本?

有没有一种pythonic方法来迭代范围字典以构建新字典?

有没有一种比pythonic /更有效的方法来遍历包含列表的字典,而不是使用for循环?

有没有一种“干净”的方法来自动注销Java中的侦听器?

有没有一种快速的方法来更新嵌套字典中具有特定值的一组键?

有没有一种干净的方法来定义一个Java接口方法,该方法的每个实现类具有不同的参数?

有没有一种通用的方法来替换具有不同程度嵌套级别的嵌套字典中的值?