免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3293 | 回复: 1
打印 上一主题 下一主题

求一三维数组最接近的算法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-03-16 16:55 |只看该作者 |倒序浏览
RT

A=[3, -1, 4]

B = numpy.array([1,1,1],
                           [1,-1,1],
                           [1,1, -1])

A 在数组B中最接近的是 [1, -1, 1], 比较条件:正负的权重大于加减,这句话说明白了吧。

B1 = numpy.array([1,1,1],
                           [1,-1,1],
                           [1,1, -1],
                           [3,1,4])     结果还是[1,-1,1]。因为加减没有全匹配到。


数字中没有0.

论坛徽章:
0
2 [报告]
发表于 2018-03-19 09:54 |只看该作者
A = np.array([3,-1, 4])

B = np.array([[1,1,1],[1,-1,1],[1,1,-1]])

# distances array-wise
np.abs(B - A)

# sum of absolute values of distances (smallest is closest)
np.sum(np.abs(B - A), axis=1)

# index of smallest (in this case index 1)
np.argmin(np.sum(np.abs(B - A), axis=1))

# all in one line (take array 1 from B)
result = B[np.argmin(np.sum(np.abs(B - A), axis=1))]

Karl Anka answered the Q.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP