有不同类型的规范化。 您正在使用min-max规范化。 来自scikit learn的min-max规范化如下。
import numpy as np
from sklearn.preprocessing import minmax_scale
# your function
def normalize_list(list_normal):
max_value = max(list_normal)
min_value = min(list_normal)
for i in range(len(list_normal)):
list_normal[i] = (list_normal[i] - min_value) / (max_value - min_value)
return list_normal
#Scikit learn version
def normalize_list_numpy(list_numpy):
normalized_list = minmax_scale(list_numpy)
return normalized_list
test_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
test_array_numpy = np.array(test_array)
print(normalize_list(test_array))
print(normalize_list_numpy(test_array_numpy))
输出:
[0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0]
[0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0]
MinMaxscaler完全使用您的公式进行规范化/缩放: http ://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.minmax_scale.html
@OuuGiii: 注意:使用Python内置函数名作为varibale名称不是一个好主意。 list()是一个Python内置函数,因此应该避免使用它作为变量。