2017-05-25 16 views
0

我有一些浮点数,如:Python的nomarlization

586.3212341231,-847.3829941845 

我想用双曲线函数,使漂浮在一系列[1,-1]例如:

0.842931342,-0.481238571 

它有什么想法? 我试过scipy,但它给了我错误的结果。

+0

'scipy'不是一个S形函数。 –

回答

3

有很多这样的功能:例子见this Wikipedia link。特别是那里的图形给出了所需范围的例子,尽管端点1和-1对于参数x的有限值是不可获得的。

最简单的功能有

x/(1 + abs(x)) 

如果你真的希望你的前两个样品浮点数映射到你的第二个两个浮点数,你可以调整你的函数是

(a + x)/(b + abs(x)) 

对于特定值ab。对于xf(x)的两个期望值,可以通过求解两个联立线性方程来找到ab。我用sympy得到您的样本值如下:

a = 246.362120860444 
b = 401.521207478205 

所以你最终得到的函数是

(246.362120860444 + x)/(401.521207478205 + abs(x)) 

我测试了这一点,它会在您需要的值。这里有两个图表显示这给出了你想要的范围(-1,1)。第一个最好显示你的两点。

enter image description here

enter image description here