【发布时间】:2021-01-22 18:59:59
【问题描述】:
我有两个向量,我想构建一个它们的成对差异矩阵。目前我这样做:
import numpy as np
a = np.array([1,2,3,4])
b = np.array([3,2,1])
M = a.reshape((-1,1)) - b.reshape((1,-1))
这当然有效,但我想知道这是否真的是预期的做事方式。该行的可读性次优;人们必须想一想reshapes 在做什么。这可以改进吗?是否有另一种“更清洁”的方式来实现相同的目标?
【问题讨论】:
-
也许可以在Code Review 提出这个问题,因为它可能会危险地导致基于意见的问题。
-
虽然可以使用
outer进行减法,但如果更易读也可以使用M=a-b[:,None]。 -
@Ehsan 这给出了
M.T而不是M