You need to enable JavaScript to run this app. 将NumPy二维数组内0-100范围像素坐标归一化至[-1,1]区间的最简方法
优惠活动
大模型
产品
解决方案
定价
更多

将NumPy二维数组内0-100范围像素坐标归一化至[-1,1]区间的最简方法

转换逻辑推导

从你给出的5组映射关系可以直接反推单坐标分量的线性映射规则:

  • 坐标值取0时,映射结果为-1
  • 坐标值取50时,映射结果为0
  • 坐标值取100时,映射结果为1
    线性关系完全对齐,单分量计算公式为:
    归一化值 = (原始坐标值 / 50) - 1
    逐点验证匹配所有给定的映射要求,无方向翻转、无非线性偏移。该公式和通用线性映射逻辑(val/raw_max)*2 -1完全等价,仅因你当前的坐标范围上限为100,可直接简化为最短写法,没有精度损失。
最简Numpy实现

整个转换是逐元素的线性运算,不需要额外调用映射函数、不需要写循环,直接利用Numpy的广播机制对整个坐标数组做整体计算即可:

import numpy as np
# raw_coords为形状是(..., 2)的原始2维坐标数组,最后一维存储每个点的(x,y)坐标
norm_coords = raw_coords / 50 - 1

效果验证

用你给出的测试点做输入,运行结果完全符合映射要求:

# 测试输入:给定的5组映射点
test_input = np.array([[0,0], [0,100], [100,0], [100,100], [50,50]])
# 执行转换
test_output = test_input / 50 -1
# 运行结果
# array([[-1., -1.],
#        [-1.,  1.],
#        [ 1., -1.],
#        [ 1.,  1.],
#        [ 0.,  0.]])

这种实现的优势是:

  • 代码长度极短,没有额外依赖
  • 运算由Numpy底层C逻辑实现,相比Python循环速度快几个数量级
  • 适配任意批量维度,只要最后一维是坐标分量,不需要修改逻辑

内容的提问来源于stack exchange,提问作者dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 22:06:04