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

Numpy实现向量所有元素两两相减 避免for循环提升运行效率

Numpy无循环实现全元素对差值矩阵

已知输入数组为:

import numpy as np
x = np.array(
[[0],
 [1],
 [2]]
)

实现代码

仅需一行即可完成计算,无任何显式for循环:

diff_matrix = x - x.T

输出结果

打印diff_matrix即可得到预期的差值矩阵:

array([[ 0, -1, -2],
       [ 1,  0, -1],
       [ 2,  1,  0]])

实现说明

  • 该方案依赖Numpy的广播运算特性:形状为(n, 1)的列向量x和形状为(1, n)的行向量x.T做减法时,会自动将两个数组的维度扩展为(n, n)的匹配维度,最终矩阵的第i行第j位元素刚好对应x[i] - x[j]的差值,完全符合需求的计算规则。
  • 运算逻辑由Numpy底层C代码实现,效率远高于Python层级的循环实现,即使输入数组长度达到万级也能快速完成计算。
  • 如果你的输入x是一维数组,只需要先调整维度即可,修改为如下代码即可得到同样结果:
    diff_matrix = x.reshape(-1, 1) - x
    

内容的提问来源于stack exchange,提问作者T.W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:15:04