我有一个带有以下整数的numpy数组:
[10 30 16 18 24 18 30 30 21 7 15 14 24 27 14 16 30 12 18]
我想将它们标准化为1到10之间的范围。
我知道规范化数组的通用公式是:
但是我应该如何在1到10之间缩放它们?
问题:将此数组规范化为1到10之间的最简单/最快的方法是什么?
答案 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