У меня есть следующий сценарий:
value_range = [250.0, 350.0]
precision = 0.01
unique_values = len(np.arange(min(values_range),
max(values_range) + precision,
precision))
Это означает, что все значения находятся в диапазоне от 250,0 до 350,0 с точностью до 0,01, что дает потенциальную сумму 10001 уникальных значений, которые может иметь набор данных.
# This is the data I'd like to scale
values_to_scale = np.arange(min(value_range),
max(value_range) + precision,
precision)
# These are the bins I want to assign to
unique_bins = np.arange(1, unique_values + 1)
В приведенном выше примере вы можете видеть, что каждое значение в values_to_scale
будет точно соответствовать соответствующему элементу в массиве unique_bins
. То есть значение 250,0 (values_to_scale[0]
) будет равно 1,0 (unique_bins[0]
) и т. д.
Однако, если мой values_to_scale
массив выглядит так:
values_to_scale = np.array((250.66, 342.02))
Как я могу сделать масштабирование / преобразование, чтобы получить уникальное значение bin? То есть 250.66 должно равняться значению 66, но как мне получить это?
ПРИМЕЧАНИЕ Значение value_range
может равняться от -1 до 1, я просто ищу общий способ масштабирования / нормализации данных между двумя значениями.