我有一个函数可以将数组重新缩放到 0.0 到 1.0 之间的值,但是我不知道如何将返回的数组重新缩放到用户定义的新最小/最大范围。问题提示是“重写 rescale 函数,使其默认将数据缩放到 0.0 和 1.0 之间,但如果调用者愿意,可以指定下限和上限”
下面是我当前数组的代码和测试。我知道我将不得不添加一个额外的默认最小/最大参数,但我对 python 和一般编程相当陌生,我不知道如何继续。任何帮助表示赞赏。
import numpy
def rescale(input):
revalue = []
Amax = input.max()
Amin = input.min()
print Amax
print Amin
print input
for x in input:
value = [(x-Amin)/(Amax-Amin)]
revalue.append(value)
print revalue
# Tests:
rescale(numpy.arange(10, dtype=np.float))
# Output
9.0
0.0
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
[[0.0], [0.1111111111111111], [0.22222222222222221], [0.33333333333333331], [0.44444444444444442], [0.55555555555555558], [0.66666666666666663], [0.77777777777777779], [0.88888888888888884], [1.0]]