How do I calculate all pairs of vector differences in numpy?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I know I can do np.subtract.outer(x, x) . If x has shape (n,) , then I end up with an array with shape (n, n) . However, I have an x with shape (n, 3) . I want to output something with shape (n, n, 3) . How do I do this? Maybe np.einsum ? 回答1: You can use broadcasting after extending the dimensions with None / np.newaxis to form a 3D array version of x and subtracting the original 2D array version from it, like so - x[:, np.newaxis, :] - x Sample run - In [6]: x Out[6]: array([[6, 5, 3], [4, 3, 5], [0, 6, 7], [8, 4, 1]]) In [7]: x[:,None,:]