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