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

如何不用for循环计算Python numpy数组中相邻元素的间隔距离

解决方案

直接调用NumPy内置的np.diff()方法即可,该方法专门用于计算数组相邻元素的差值,底层由C实现,性能远高于手写Python循环,实现仅需一行代码:

import numpy as np

# arr为你的原始numpy数组
interval_arr = np.diff(arr)

返回的interval_arr长度为原数组长度减1,每个元素对应原数组后一位减前一位的间隔值,完全匹配你的需求。

补充说明

你提到的np.flatnonzero方法用于返回数组中非零元素的扁平化索引,和当前计算相邻差值的需求不匹配,不需要使用该方法。

你给出的示例数组运行效果如下:

arr = np.array([18, 36, 54, 9893804, 9893822, 9893840], dtype=np.int64)
print(np.diff(arr))
# 输出:array([18, 18, 9893750, 18, 18], dtype=int64)

如果需要返回的间隔数组长度和原数组一致,可以在差值结果的首尾补指定值,示例如下:

# 头部补0,输出长度和原数组相同
interval_arr_pad = np.pad(np.diff(arr), (1, 0), constant_values=0)
# 尾部补0则修改pad参数为(0, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:33:03