gpt4 book ai didi

python - 在两个值之间缩放/变换/标准化 NumPy 数组

转载 作者:行者123 更新时间:2023-12-01 07:41:52 25 4
gpt4 key购买 nike

我有以下情况:

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 数组中的相应项目。 IE。值 250.0 (values_to_scale[0]) 将等于 1.0 (unique_bins[0]) 等。

但是,如果我的 values_to_scale 数组如下所示:

values_to_scale = np.array((250.66, 342.02)) 

如何进行缩放/转换以获得唯一的 bin 值? IE。 250.66 应该等于值 66,但我如何获得这个值?

注意 value_range 同样可以在 -1 和 1 之间,我只是在寻找一种在两个值之间缩放/标准化数据的通用方法。

最佳答案

您基本上是在寻找 minmax 之间的线性插值:

minv = min(value_range)
maxv = max(value_range)
unique_values = int(((maxv - minv) / precision) + 1)
((values_to_scale - minv) / (maxv + precision - minv) * unique_values).astype(int)
# array([ 65, 9202])

关于python - 在两个值之间缩放/变换/标准化 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com