重新缩放 0 到 1 之间的数字
我有以下数字列表:
3.16, 4.72, 6.44, 8.25, 3.76, 4.87, 5.76, 6.5, 7.32
我必须重新调整 (0, 1) 之间的数字,以便:
1) 最小的数字得到最接近的值0 但不是 0。
2) 最大的数字得到的值最接近 1,但不是 1。
0 在我的Study 表示完全适合,1 表示完全不适合,这就是为什么我想将它们从最终结果中排除。
任何帮助将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这种转变有帮助吗?
域 - 实数,因此
V
可以采用任何实数值范围 - (0,1)
因此,0、
V'<>0
和V'<>1
Would this transform help?
Domain - Real numbers so
V
can take any real valuesRange - (0,1)
so that,0<V'<1
,V'<>0
andV'<>1
Python 中使用仿射变换的简单示例:
给出结果:
当然,您可以将填充量更改为您想要的大小 - 对于范围,您需要添加两倍的填充量对于最小值,因为您需要在范围的每一端添加填充。
A quick example in Python, using an affine transformation:
Gives the result:
You can, of course, change the amount of padding to be as small as you'd like - for the range, you'll want to add twice what you do for the minimum value, because you need to add padding to each end of the range.
我不确定我是否理解你的问题,但是找到集合中的最大数字,然后将集合中的每个数字除以该最大数字将为您提供一个合适的范围。
I'm not sure I understand your question, but finding the maximum number in the set, and dividing each number in the set by that maximum number will give you a suitable range.
您可能需要仿射映射(即形式
y = mx + c
),这样:求解这些方程,您将得到:
您可以定义
not_quite_0 = 0 + eps
和not_quite_1 = 1 - eps
,其中eps
是一些非常非常小的值。You probably want an affine mapping (i.e. of the form
y = mx + c
), such that:Solving these equations, you get:
You can probably define
not_quite_0 = 0 + eps
andnot_quite_1 = 1 - eps
, whereeps
is some very very small value.