如何解决在python中将数据缩放到特定范围
我想将大小[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)
即使我原始矩阵的最大值和最小值完全相同,这也会弄乱我的矩阵范围。我不知道出什么问题了,知道吗?
解决方法
您可以手动执行此操作。 它是对minmax归一化数据的线性变换。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。