python - python中将数据缩放到特定范围

标签 python scikit-learn normalization

我想将大小为 [192,4000] 的数组缩放到特定范围。我希望将每一行 (1:192) 重新调整到特定范围,例如(-840,840)。我运行一个非常简单的代码:

import numpy as np
from sklearn import preprocessing as sp
sample_mat = np.random.randint(-840,840, size=(192, 4000))
scaler = sp.MinMaxScaler(feature_range=(-840,840))
scaler = scaler.fit(sample_mat)
scaled_mat= scaler.transform(sample_mat)

这会扰乱我的矩阵范围,即使原始矩阵的最大值和最小值完全相同。我不知道出了什么问题,有什么想法吗?

最佳答案

您可以手动执行此操作。 它是最小最大归一化数据的线性变换。

interval_min = -840
interval_max = 840
scaled_mat = (sample_mat - np.min(sample_mat) / (np.max(sample_mat) - np.min(sample_mat)) * (interval_max - interval_min) + interval_min

关于python - python中将数据缩放到特定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64535187/

相关文章:

python - 如何运行循环以在Python for循环中使用非缩放和缩放数据

mysql - 正确的mysql(关系型)数据库设计结构是什么

mysql - 删除 MySQL 字段中的尾随句点

python - Keras 神经网络和 SKlearn SVM.SVC

python - 在 Python 中实现 MVC? (使用 Flask 和 MongoKit)

python - 从 Objective-C 调用 Python

python - GAE - 包括外部 python 模块而不将它们添加到存储库?

python - 没有提供任何参数时,LassoCV 中的参数选择如何工作?

数据库设计 - 规范化

python - 检查一个字典的值是否是另一个字典的键