首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >点集之间的带符号距离

点集之间的带符号距离
EN

Stack Overflow用户
提问于 2014-04-11 03:52:21
回答 1查看 787关注 0票数 1

假设我有两组点XY,它们可能包含不同数量的点,并且具有不同的维度。我们可以假设XYn x m numpy数组(n点,每个点m维)

我想获得YX中的点之间的sum(y-x)距离的分布(中位数和标准差)。

例如,如果一个y点是(2,4),一个x点是(3,5),那么sum(y-x)距离将是2-3 + 4-5 = -2

我怎样才能在Python中做到这一点而不进行循环?

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 04:04:55

快速浏览scipy.spatial.distance没有产生任何结果,因此您可能需要使用广播:

代码语言:javascript
运行
复制
>>> a = np.random.rand(5,3) #(N x M)
>>> b = np.random.rand(4,3) #(K X M)
>>> dists = np.sum(a[:,None,:] - b, axis=-1)
>>> dists
array([[-0.57713957, -1.88996939, -0.13993727, -1.17222018],
       [ 0.89288677, -0.41994304,  1.33008907,  0.29780616],
       [ 0.45866859, -0.85416123,  0.89587088, -0.13641203],
       [ 1.12909228, -0.18373754,  1.56629457,  0.53401166],
       [ 0.64299673, -0.66983308,  1.08019903,  0.04791612]])

现在只需获取中位数和标准差:

代码语言:javascript
运行
复制
>>> np.median(dists)
0.17286113728020264
>>> np.std(dists)
0.88228393506243197
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22997726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档