gpt4 book ai didi

Python,缩放浮点范围 [0,1) 到 [min, max)

转载 作者:行者123 更新时间:2023-11-30 23:04:38 27 4
gpt4 key购买 nike

我正在寻找尽可能短的方法来统一缩放 float 组,例如

orig_arr = [0.0, 0.2, 0.4, 0.6, 0.8]

到另一个范围,其中本示例中的 0.0 转换为最小值,0.8 转换为最大值。

通常我会通过按组件计算来做到这一点:

new_arr[i] = new_rg_min + orig_arr[i] * (new_rg_max - new_rg_min)

但是如果有一些 numpy 或任何函数可以做到这一点而不需要循环......

或更短:我想线性缩放并将一个范围移动到另一个范围。

最佳答案

使用numpy,您可以一次对整个数组进行数学运算...例如,您的代码可以更改为:

new_arr = numpy.array(orig_array) * (new_rg_max - new_rg_min) + new_rg_min

因为标量的乘法或加法是逐个元素进行的(对于多维数组也是如此)。

例如,我经常将计算图像的结果缩放到 0..255,以将它们保存为 PGM 文件:

mn = numpy.min(image)
mx = numpy.max(image)
output = numpy.uint8((image - mn)*255/(mx - mn))

关于Python,缩放浮点范围 [0,1) 到 [min, max),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33600003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com