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

Ave*_*nus 1 python numpy python-3.x

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

[10 30 16 18 24 18 30 30 21 7 15 14 24 27 14 16 30 12 18]
Run Code Online (Sandbox Code Playgroud)

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

我知道规范化数组的一般公式是:

在此处输入图片说明

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

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

And*_*eak 6

您的范围实际上是 9 长:从 1 到 10。如果将归一化数组乘以 9,您会得到从 0 到 9 的值,您需要将其移回 1:

start = 1
end = 10
width = end - start
res = (arr - arr.min())/(arr.max() - arr.min()) * width + start
Run Code Online (Sandbox Code Playgroud)

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

res = (arr - arr.min())/arr.ptp() * width + start
Run Code Online (Sandbox Code Playgroud)