多维数组中的值之间的向量化空间距离

时间:2018-09-11 23:31:37

标签: scipy scipy-spatial

给出沿最后一个维度的3D笛卡尔坐标的(2,2,3,3,3)数组,使用scipy.spatial.distance.cdist计算XA和XB中成对值之间的欧几里得以产生形状为{的输出数组的语法是什么{1}}?

(2, 3, 3)

返回XA = np.random.normal(size=(2,2,3,3,3)) XB = np.random.normal(size=(2,2,3,3,3)) dist = cdist(XA[:, 0, ...], XB[:, 1, ...], 'seuclidean') 。这样,除了循环以外,用于计算ValueError: XA must be a 2-dimensional array的pythonic语法是什么?

1 个答案:

答案 0 :(得分:1)

这是工作吗?如果仅需要成对的距离,并且坐标位于最后一个维度:

import numpy as np

XA = np.random.normal(size=(2,2,3,3,3))
XB = np.random.normal(size=(2,2,3,3,3))

distances = np.sqrt(np.sum((XA - XB)**2, axis=-1))

但是这里distances.shape(2, 2, 3, 3) ...