规范化列表 python
Normalizing list of list python
我有一个这样的列表:
> x =[[87.46853791525385, 0.28074670571010246], [126.11314768167513, 0.3977334471784522],[122.58453149726517, 0.4361537416813799],[83.34642493277082, 0.3468989093276901], [99.20805518615764, 0.2667645066606457],...]
每个内部列表的第一个位置代表一个变量,而每个内部列表的第二个位置代表另一个变量。
我想使用以下公式对每个变量进行归一化:
m_s = ( m0 -min(m0) ) / ( max(m0) - min(m0) )
其中m_s为参数的换算值,m_o为参数的实际值。 Min是一个变量的最小变量,max是最大变量。
如果我没看错你的问题,你想对列表中的每个变量应用缩放函数 x
:
x = [[87.46853791525385, 0.28074670571010246], [126.11314768167513, 0.3977334471784522],[122.58453149726517, 0.4361537416813799],[83.34642493277082, 0.3468989093276901], [99.20805518615764, 0.2667645066606457]]
min_var1 = min(val for (val, _) in x)
max_var1 = max(val for (val, _) in x)
min_var2 = min(val for (_, val) in x)
max_var2 = max(val for (_, val) in x)
# m_s = ( m0 -min(m0) ) / ( max(m0) - min(m0) )
func = lambda x, min_x, max_x: (x - min_x) / (max_x - min_x)
x = [[func(var1, min_var1, max_var1), func(var2, min_var2, max_var2)] for var1, var2 in x]
from pprint import pprint
pprint(x)
打印:
[[0.09638599166658474, 0.08254479127758767],
[1.0, 0.773183375565603],
[0.9174915458187556, 1.0],
[0.0, 0.473078484929904],
[0.37088720467347935, 0.0]]
我有一个这样的列表:
> x =[[87.46853791525385, 0.28074670571010246], [126.11314768167513, 0.3977334471784522],[122.58453149726517, 0.4361537416813799],[83.34642493277082, 0.3468989093276901], [99.20805518615764, 0.2667645066606457],...]
每个内部列表的第一个位置代表一个变量,而每个内部列表的第二个位置代表另一个变量。
我想使用以下公式对每个变量进行归一化: m_s = ( m0 -min(m0) ) / ( max(m0) - min(m0) )
其中m_s为参数的换算值,m_o为参数的实际值。 Min是一个变量的最小变量,max是最大变量。
如果我没看错你的问题,你想对列表中的每个变量应用缩放函数 x
:
x = [[87.46853791525385, 0.28074670571010246], [126.11314768167513, 0.3977334471784522],[122.58453149726517, 0.4361537416813799],[83.34642493277082, 0.3468989093276901], [99.20805518615764, 0.2667645066606457]]
min_var1 = min(val for (val, _) in x)
max_var1 = max(val for (val, _) in x)
min_var2 = min(val for (_, val) in x)
max_var2 = max(val for (_, val) in x)
# m_s = ( m0 -min(m0) ) / ( max(m0) - min(m0) )
func = lambda x, min_x, max_x: (x - min_x) / (max_x - min_x)
x = [[func(var1, min_var1, max_var1), func(var2, min_var2, max_var2)] for var1, var2 in x]
from pprint import pprint
pprint(x)
打印:
[[0.09638599166658474, 0.08254479127758767],
[1.0, 0.773183375565603],
[0.9174915458187556, 1.0],
[0.0, 0.473078484929904],
[0.37088720467347935, 0.0]]