相关疑难解决方法(0)

在PHP中缩放值

我无法解决如何表达这是PHP.

我有100和420作为我希望获得的最小值和最大值.

比我们假设:

1000
4534
34566
123145
12312265
Run Code Online (Sandbox Code Playgroud)

现在,我该怎么说:

取4534并知道1000 = 420和12312265 = 100确定4534值.

为了更清楚,我试图用正方形表示网页排名,所以如果排名为1,它应该被翻译成我的最大值/大小420,但是如果页面排名低于受欢迎程度,比如13000那么它的大小应该是接近最低100.我知道所有的价值观.

谢谢.

我仍然无法搞清楚这一点.

到目前为止使用我的第一个答案的代码:

$srcmin=1185;
$srcmax=25791525;

$destmin=100;
$destmax=420;

$pos = (($RANK - $srcmin) / ($srcmax-$srcmin)) ;
$rescaled = ($pos * ($destmax-$destmin)) + $destmin;*/

$percentage = (($RANK - $MIN) * 100) / $MAX;
$SIZE = (($percentage / 320) * 100) + 100
Run Code Online (Sandbox Code Playgroud)

作为$ RANK我的网页排名和$ SIZE值我需要相应地调整它们的大小.这不起作用(我的错误毫无疑问)我从$ SIZE获得的是100.

php math scale

7
推荐指数
1
解决办法
1990
查看次数

如果我想要空插值(分段常数),numpy.interp的最佳直接替换是什么?

numpy.interp非常方便,相对较快.在某些情况下,我想将其输出与稀疏值传播的非插值变量(在"密集"输出中)进行比较,结果在稀疏输入之间是分段常数.我想要的函数也可以称为"稀疏 - >密集"转换器,它复制最新的稀疏值,直到它找到一个较晚的值(一种空插值,好像零时间/距离从前一个值开始经过).

不幸的是,调整源代码并不容易,numpy.interp因为它只是编译函数的包装器.我可以使用Python循环自己编写,但希望找到一种C-speed方法来解决问题.

更新:下面的解决方案(scipy.interpolate.interp1dwith kind='zero')非常慢,每次调用需要10秒以上(例如输入500k的长度,即50%填充).它kind='zero'使用零阶样条实现,调用spleval非常慢.但是,kind='linear'(即默认插值)的源代码为使用直接numpy解决问题提供了一个很好的模板(最小化更改是设置slope=0).该代码显示了如何使用numpy.searchsorted来解决问题,并且运行时类似于调用numpy.interp,因此通过调整scipy.interpolate.interp1d线性插值的实现来跳过插值步骤(斜率!= 0混合相邻值)来解决问题.

python interpolation numpy

6
推荐指数
1
解决办法
3073
查看次数

如何将正负十进制数列表标准化为特定范围

我有一个十进制数列表如下:

[-23.5, -12.7, -20.6, -11.3, -9.2, -4.5, 2, 8, 11, 15, 17, 21]
Run Code Online (Sandbox Code Playgroud)

我需要规范化这个列表以适应范围[-5,5].
我怎么能在python中做到这一点?

python list range normalize

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

interpolation ×1

list ×1

math ×1

normalize ×1

numpy ×1

php ×1

range ×1

scale ×1