Python 根据已缩放的列表缩放单个值

Python 根据已缩放的列表缩放单个值,python,python-3.x,numpy,Python,Python 3.x,Numpy,我有一个表示某些视频视图的值列表: foo = [4324, 5466, 4165, 6617, 8570, 6556, 2700] 我需要的是将该值缩放到0-5的范围,这样我就可以仅使用5个级别(如五星分类系统)来显示该值,我使用以下代码来实现: import numpy as np df = (5*(foo - np.min(foo))/np.ptp(foo)).astype(int) # df = array([1, 2, 1, 3, 5, 3, 0]) 这已经非常有效了,这正是

我有一个表示某些视频视图的值列表:

foo = [4324, 5466, 4165, 6617, 8570, 6556, 2700]
我需要的是将该值缩放到0-5的范围,这样我就可以仅使用5个级别(如五星分类系统)来显示该值,我使用以下代码来实现:

import numpy as np

df = (5*(foo - np.min(foo))/np.ptp(foo)).astype(int)
# df =  array([1, 2, 1, 3, 5, 3, 0]) 
这已经非常有效了,这正是我所需要的,唯一的问题是我的输入不是一个列表,它只是一个值(例如
8570
),尽管我可以访问初始的foo数组来缩放所有值,但我如何缩放这个值

当然,我用于缩放的方法需要一个数组,所以我想知道使用一些函数
bar()


此函数实际上可以使用其他值访问
foo
(或缩放列表
df
,但我不知道如何实现此功能。

您当前的公式是:
(5*(foo-np.min(foo))/np.ptp(foo))
。我认为如果你有一个单一的值
x
,那么如果你想保持相同的比例,你应该使用:
(5*(x-np.min(foo))/np.ptp(foo))
def bar(value):
    # Some hard computation
    return value_from_0_to_5