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

如何在Python中快速计算3D点的向量差矩阵?

用NumPy快速计算3D点对之间的向量差矩阵

直接利用NumPy的广播机制就能高效实现,完全不需要循环,具体步骤如下:

代码示例

import numpy as np

# 示例输入点集
b = [[0,0,1], [1,0,2], [2,3,4]]
# 将列表转换为NumPy数组
b_np = np.array(b)

# 计算向量差矩阵:m[i][j] = b_i - b_j
m = b_np[:, np.newaxis, :] - b_np[np.newaxis, :, :]

# 输出结果验证
print(m)

原理说明

  • b_np[:, np.newaxis, :] 将原数组从 (n,3) 形状扩展为 (n,1,3),相当于把每个点作为独立的行向量组
  • b_np[np.newaxis, :, :] 扩展为 (1,n,3),相当于把每个点作为独立的列向量组
  • 两者相减时,NumPy会自动触发广播机制,让每个行向量(b_i)减去所有列向量(b_j),最终得到形状为 (n,n,3) 的结果矩阵,完全匹配需求中 m_ij = b_i - b_j 的定义

这种方法依托NumPy的底层C优化实现,计算效率远高于Python原生循环,即使处理大规模点集也能保持高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:42:05