如何有效地创建具有向量元素对平均值的矩阵

How to create a matrix with averages of pairs of elements of a vector, efficiently

我有:

a = np.array([1, 2, 3])

我想高效地(不使用循环)获得一个矩阵 a_avg,其中 a_avg[i,j]a[i]a[j] 的平均值,使得结果是:

np.array([[1.,  1.5, 2. ],
          [1.5, 2.,  2.5],
          [2.,  2.5, 3. ]])

我的解决方案:

a_avg = (a[:, np.newaxis] + a) / 2

(网上没找到这个问题,觉得有用,分享一下)