coo*_*per 0 python distribution list
在python中,我有一个列表,例如:
a = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
列表将始终排序.我想为这些值分配权重,使得权重仅在值0和1之间.最大值将具有权重1,即在该示例中,5将具有权重1.
但是,1不会有权重0(0是特殊的,不包括在内).我希望所有其他权重都是最大数字的某个小数值.我不确定解决这个问题的最佳方法是什么.
先找到最大值; 由于您的数据已排序,这将是最后一个值; 然后简单地将其余部分除以该值:
from __future__ import division
maxval = a[-1]
weights = [elem / maxval for elem in a]
Run Code Online (Sandbox Code Playgroud)
演示:
>>> maxval = a[-1]
>>> [elem / maxval for elem in a]
[0.2, 0.4, 0.6, 0.8, 1.0]
Run Code Online (Sandbox Code Playgroud)
该from __future__ import division
进口,确保我们使用浮点除法,而不是整数除法.另一种方法是使用maxval = float(a[-1])
.
归档时间: |
|
查看次数: |
258 次 |
最近记录: |