给出沿最后一个维度的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语法是什么?
答案 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)
...