【pytorch工具记录】获取向量中值相同的元素的索引号

给定一个向量a,输出其中值相同的元素的索引号

比如给定[1,1,2,3,4,5,5,5,5],其中第0,1个元素的值都是1,要输出[0,1],第5,6,7,8个元素的值都是5,要输出[5,6,7,8],如果没有相同的,就输出元素自身的索引号。

def getIdx(a):
    co = a.unsqueeze(0)-a.unsqueeze(1)
    uniquer = co.unique(dim=0)
    out = []
    for r in uniquer:
        cover = torch.arange(a.size(0))
        mask = r==0
        idx = cover[mask]
        out.append(idx)
    return out

测试:

import torch
a = torch.Tensor([1,1,2,3,4,5,5,5,5])
idxs=getIdx(a) 
#output: [tensor([5, 6, 7, 8]), tensor([4]), tensor([3]), tensor([2]), tensor([0, 1])]

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值