【发布时间】:2016-04-18 20:10:34
【问题描述】:
我有两个向量,比如说x=[2,4,6,7] 和y=[2,6,7,8],我想找到每个对应对之间的欧几里得距离或任何其他实现的距离(例如来自 scipy)。那将是
dist=[0, 2, 1, 1].
当我尝试时
dist = scipy.spatial.distance.cdist(x,y, metric='sqeuclidean')
或
dist = [scipy.spatial.distance.cdist(x,y, metric='sqeuclidean') for x,y in zip(x,y)]
我明白了
ValueError: XA must be a 2-dimensional array.
我应该如何计算 dist 以及为什么我必须为此目的重塑数据?
【问题讨论】:
-
小心你在列表推导中使用的变量名 (
for x, y)。执行理解后,它们仍然可见。在您的示例中,这些变量与x和y向量相同,您是zipping,因此在理解完成后,x和y将等于每个向量的最后一个值,而不是向量本身。