You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NumPy计算元素间最小绝对差值(含跨100取模规则)

NumPy计算跨100取模的元素最小绝对差值

现有两个NumPy数组:

import numpy as np

a = np.array([101,105,90,102,90,10,50])
b = np.array([99,110,85,110,85,90,60])

expected_result = np.array([2,5,5,8,5,20,10])

需求:仅用NumPy运算计算两个数组对应元素间的最小绝对差值,且当两个数值跨100时需按100取模处理(即考虑数值在0-100循环的场景,比如10和90的最小差值是20,而非80)。

实现思路

核心逻辑是:对每一对对应元素,先计算两者的绝对差值d,再计算100 - d(这是跨100循环后的差值),最终取这两个值中的较小者,就是符合要求的最小绝对差值。

代码实现

import numpy as np

a = np.array([101,105,90,102,90,10,50])
b = np.array([99,110,85,110,85,90,60])

# 计算对应元素的绝对差值
d = np.abs(a - b)
# 取绝对差值和跨100差值中的较小值
result = np.minimum(d, 100 - d)

print(result)
# 输出:[ 2  5  5  8  5 20 10]
print(np.array_equal(result, expected_result))
# 输出:True

验证说明

  • 元素对10和90:绝对差值为80,跨100循环后的差值为20,取最小值20,符合预期。
  • 元素对101和99:绝对差值为2,跨100循环后的差值为98,取最小值2,符合预期。
  • 其余元素对的计算逻辑一致,最终结果与预期完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:57:07