0

给定一个(2,2,3,3,3)沿最后一个维度的 3D 笛卡尔坐标数组,计算 XA 和 XB 中的成对值之间的欧几里得的语法是什么,用于scipy.spatial.distance.cdist产生一个 shape 的输出数组(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。因此,循环的替代方法是什么用于计算的 Python 语法cdist(XA[:, 0], XB[:, 1])

4

1 回答 1

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)...

于 2018-09-12T20:11:39.607 回答