如何规范1到10之间的数组?

时间:2018-05-12 10:23:50

标签: python python-3.x numpy

我有一个带有以下整数的numpy数组:

[10 30 16 18 24 18 30 30 21 7 15 14 24 27 14 16 30 12 18]

我想将它们标准化为1到10之间的范围。

我知道规范化数组的通用公式是:

enter image description here

但是我应该如何在1到10之间缩放它们?

问题:将此数组规范化为1到10之间的最简单/最快的方法是什么?

1 个答案:

答案 0 :(得分:1)

您的范围实际上是9长:从1到10.如果将规范化数组乘以9,则得到0到9之间的值,您需要将其向后移1:

start = 1
end = 10
width = end - start
res = (arr - arr.min())/(arr.max() - arr.min()) * width + start

请注意,这里的分母有一个名为arr.ptp()的numpy内置函数:

res = (arr - arr.min())/arr.ptp() * width + start