python ndarray find_python – 在2D numpy ndarray或numpy矩阵中获取前N个值的索引

我有一组N维向量.

data = np.array([[5,6,1],[2,0,8],[4,9,3]])

In [1]: data

Out[1]:

array([[5, 6, 1],

[2, 0, 8],

[4, 9, 3]])

我正在使用sklearn的pairwise_distances function来计算距离值矩阵.注意,该矩阵关于对角线是对称的.

dists = pairwise_distances(数据)

In [2]: dists

Out[2]:

array([[ 0. , 9.69535971, 3.74165739],

[ 9.69535971, 0. , 10.48808848],

[ 3.74165739, 10.48808848, 0. ]])

我需要与此矩阵中的前N个值对应的索引,因为这些索引将对应于表示它们之间距离最大的向量的数据中的成对索引.

我试过做np.argmax(np.max(距离,轴= 1))得到每一行中最大值的索引,并尝试np.argmax(np.max(距离,轴= 0))得到每列中最大值的索引,但请注意:

In [3]: np.argmax(np.max(dists, axis=1))

Out[3]: 1

In [4]: np.argmax(np.max(dists, axis=0))

Out[4]: 1

和:

In [5]: dists[1, 1]

Out[5]: 0.0

因为矩阵关于对角线是对称的,并且因为argmax返回它找到的具有最大值的第一个索引,所以我最终得到行中的对角线中的单元格与存储最大值的列匹配,而不是行和顶部值的列本身.

在这一点上,我确信我可以编写更多代码来找到我正在寻找的值,但肯定有一种更简单的方法来做我想做的事情.所以我有两个或多或少等同的问题:

如何在矩阵中找到与前N个值对应的索引,或者,如何从向量数组中找到具有前N个成对距离的向量?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值