说我有一个像这样的 (3,3,3) 数组。
array([[[1, 1, 1],
[1, 1, 1],
[0, 0, 0]],
[[2, 2, 2],
[2, 2, 2],
[2, 2, 2]],
[[3, 3, 3],
[3, 3, 3],
[1, 1, 1]]])
如何获得对应于 3 个值的每个向量与第零个值之间的欧几里得距离的 9 个值?
比如做numpy.linalg.norm([1,1,1] - [1,1,1])
2 次,然后做norm([0,0,0] - [0,0,0])
,然后norm([2,2,2] - [1,1,1])
2 次,,,norm([2,2,2] - [0,0,0])
然后norm([3,3,3] - [1,1,1])
2 次,最后norm([1,1,1] - [0,0,0])
。
有什么好的方法可以矢量化吗?我想将距离存储在 (3,3,1) 矩阵中。
结果将是:
array([[[0. ],
[0. ],
[0. ]],
[[1.73],
[1.73],
[3.46]]
[[3.46],
[3.46],
[1.73]]])