【发布时间】:2020-12-07 22:03:21
【问题描述】:
我正在学习编码,但我仍然不太擅长。我的问题是我有一个矿物的 Python 字典,每种矿物(键)都有另一个字典作为值,我可以在其中读取属性。 例如
"Quartz": {
"Zeff-2.94": 11.560477823722744,
"Rhoe": 7.968143490069414e+23
},
"Siderite": {
"Zeff-2.94": 20.242908072785397,
"Rhoe": 1.1265233868351479e+24
},
.....etc }
然后,我必须将“大矿物词典”中的所有“Zeff”值和所有“Rhoe”值标准化为 0 到 1。我想写一个循环,但它不起作用:
import CommonMinerals_database
import math
import numpy as np
from sklearn.preprocessing import normalize
norm_mineral_database = {}
for k in CommonMinerals_database.COMMON_MINERALS_DATABASE.keys():
norm_mineral = COMMON_MINERALS_DATABASE[k]
Zeff_norm = normalize(norm_mineral["Zeff-2.94"])
rhoe_norm = normalize(norm_mineral["Rhoe"])
print(norm_mineral_database)
我的目标是获取另一个矿物字典(即使它看起来不像“普通”python 字典),我可以在其中读取规范化的属性。 拜托,你能帮帮我吗? 提前谢谢!
【问题讨论】:
-
如果有什么错误,在哪一行?
-
ValueError: 预期的二维数组,得到的是标量数组:array=13.26645845673176。如果您的数据具有单个特征,则使用 array.reshape(-1, 1) 重塑您的数据,如果它包含单个样本,则使用 array.reshape(1, -1)。
标签: python dictionary for-loop database-normalization normalize