如何使用超调将 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 替换为您的数据缩放到的数字!
我正在尝试将 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 替换为您的数据缩放到的数字!