如何使用超调将 numpy 数组从 0 缩放到 1?

How to scale a numpy array from 0 to 1 with overshoot?

我正在尝试将 pandas 或 numpy 数组从 0 缩放到未知的最大值,并将定义的数字替换为 1。

我尝试过的一个解决方案是将我想要的定义数字除以数组。

test = df['Temp'] / 33

此方法不会从 0 一直扩展,我一直在尝试找出更好的数学方法来解决这个问题。

首先,将 DataFrame 转换为 numpy 数组

import numpy as np
T = np.array(df['Temp'])

然后缩放到[0, 1]区间:

def scale(A):
    return (A-np.min(A))/(np.max(A) - np.min(A))

T_scaled = scale(T)

然后将其转换为您想要的任何位置,例如至 [55..100]

T2 = 55 + 45*T_scaled

我确信这也可以在 Pandas 内完成(但我不熟悉)。也许你可以学习 Pandas df.apply()

scaled = (df['Temp']-df['Temp'].min()) / (33 - df['Temp'].min())

只需将 33 替换为您的数据缩放到的数字!