栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查找矩阵内最接近/相似的值(向量)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查找矩阵内最接近/相似的值(向量)

方法1

我们可以使用

Cython-powered kd-tree
快速的最近邻居查询,这在内存和性能上都非常有效-

In [276]: from scipy.spatial import cKDTreeIn [277]: matrix[cKDTree(matrix).query(search_vec, k=1)[1]]Out[277]: array([2, 2])

方法#2

SciPy'scdist
-

In [286]: from scipy.spatial.distance import cdistIn [287]: matrix[cdist(matrix, np.atleast_2d(search_vec)).argmin()]Out[287]: array([2, 2])

方法#3

Scikit-learn's
最近的邻居-

from sklearn.neighbors import NearestNeighborsnbrs = NearestNeighbors(n_neighbors=1).fit(matrix)closest_vec = matrix[nbrs.kneighbors(np.atleast_2d(search_vec))[1][0,0]]

方法#4

随着

Scikit-learn's
kdtree -

from sklearn.neighbors import KDTreekdt = KDTree(matrix, metric='euclidean')cv = matrix[kdt.query(np.atleast_2d(search_vec), k=1, return_distance=False)[0,0]]

方法5

eucl_dist
软件包(免责声明:我是它的作者)中,按照
wiki contents
,我们可以利用
matrix-multiplication
-

M = matrix.dot(search_vec)d = np.einsum('ij,ij->i',matrix,matrix) + np.inner(search_vec,search_vec) -2*Mclosest_vec = matrix[d.argmin()]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号