gpt4 book ai didi

python-3.x - 如何计算numpy中的所有向量差对?

转载 作者:行者123 更新时间:2023-12-03 17:40:40 27 4
gpt4 key购买 nike

我知道我可以做np.subtract.outer(x, x)。如果x的形状为(n,),那么我最终得到一个形状为(n, n)的数组。但是,我有一个形状为x(n, 3)。我想输出形状为(n, n, 3)的东西。我该怎么做呢?也许np.einsum

最佳答案

您可以在使用 broadcasting 扩展尺寸以形成None的3D数组版本并从中减去原始2D数组版本之后使用 np.newaxis / x ,如下所示-

x[:, np.newaxis, :] - x

sample 运行-
In [6]: x
Out[6]:
array([[6, 5, 3],
[4, 3, 5],
[0, 6, 7],
[8, 4, 1]])

In [7]: x[:,None,:] - x
Out[7]:
array([[[ 0, 0, 0],
[ 2, 2, -2],
[ 6, -1, -4],
[-2, 1, 2]],

[[-2, -2, 2],
[ 0, 0, 0],
[ 4, -3, -2],
[-4, -1, 4]],

[[-6, 1, 4],
[-4, 3, 2],
[ 0, 0, 0],
[-8, 2, 6]],

[[ 2, -1, -2],
[ 4, 1, -4],
[ 8, -2, -6],
[ 0, 0, 0]]])

关于python-3.x - 如何计算numpy中的所有向量差对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32473635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com