【问题标题】:Distance with array of different sizes不同大小数组的距离
【发布时间】:2018-05-10 00:14:14
【问题描述】:

我有一个尺寸如下的数组:

pos = np.array([[   1.72,   2.56],
            [   0.24,   5.67],
            [  -1.24,   5.45],
            [  -3.17,  -0.23],
            [   1.17,  -1.23],
            [   1.12,   1.08]])

我想找到数组的每一行到索引点之间的距离,该索引点是

ref = np.array([1.22, 1.18])

因此,我将有一个包含 4 个元素的数组作为答案,但我对仅使用 numpy 处理此问题的方法感到非常困惑,因为我尝试了多种方法,但 ref 数组的大小提出了挑战。感谢您的帮助。

预期的答案是一个包含 6 个元素的数组。元素大约是:

[ 1.468,  4.596,  4.928 ,  4.611,  2.410,  0.141 ]

【问题讨论】:

  • 你能edit 包含你想要的输出并告诉我们“每条线之间的距离”的计算吗?
  • 数组大小不是问题...有类似的解决方案,一些使用 scipy 的 cdist 其他使用 einsum ......stackoverflow.com/questions/42660459/…
  • 我已经编辑了这个问题,我已经尝试过了,但我不断收到这个错误,“raise ValueError('XB must be a 2-dimensional array.')”
  • @HumanError 我想知道你是否曾经接受任何答案。

标签: python arrays python-3.x numpy


【解决方案1】:

使用numpy 并假设欧几里得度量:

import numpy as np
np.linalg.norm(pos - ref, axis=1)

如果您需要 Python 列表(而不是 numpy 数组),请将 .tolist() 添加到上一行:

np.linalg.norm(pos - ref, axis=1).tolist()

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 2020-06-26
    • 2017-01-13
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多