Как нормализовать массив от 1 до 10? - PullRequest
0 голосов
/ 12 мая 2018

У меня есть числовой массив со следующими целыми числами:

[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 голосов
/ 12 мая 2018

Ваш диапазон на самом деле имеет длину 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():

res = (arr - arr.min())/arr.ptp() * width + start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...