如何在pytorch中对矩阵的每一行中的值进行重复数据删除?

海南木

我遇到了与相同的问题,但是对于以下问题,我没有找到预期的答案。我想在PyTorch中对矩阵的每一行中的值进行重复数据删除。给定一个矩阵为:

torch.Tensor(([1, 2, 3, 4, 3, 3, 4],
          [1, 6, 3, 5, 3, 5, 4]])

torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
          [1, 6, 3, 5, 0, 0, 4]])

要么

torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
          [1, 6, 3, 5, 4, 0, 0]])

我知道torch.unique()无法实现,所以我想知道如何在没有循环的情况下实现此功能。

瓦西·艾哈迈德|
x = torch.tensor([
    [1, 2, 3, 4, 3, 3, 4],
    [1, 6, 3, 5, 3, 5, 4]
], dtype=torch.long)

# sorting the rows so that duplicate values appear together
# e.g., first row: [1, 2, 3, 3, 3, 4, 4]
y, indices = x.sort(dim=-1)

# subtracting, so duplicate values will become 0
# e.g., first row: [1, 2, 3, 0, 0, 4, 0]
y[:, 1:] *= ((y[:, 1:] - y[:, :-1]) !=0).long()

# retrieving the original indices of elements
indices = indices.sort(dim=-1)[1]

# re-organizing the rows following original order
# e.g., first row: [1, 2, 3, 4, 0, 0, 0]
result = torch.gather(y, 1, indices)

print(result) # => output

输出量

tensor([[1, 2, 3, 4, 0, 0, 0],
        [1, 6, 3, 5, 0, 0, 4]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取数据框中每一行的每一列的值和类型?

删除一行熊猫数据框中的重复值

如何在回收值的同时将数据帧的每一行除以数据帧中相应列的行

如何在熊猫数据帧的每一行中获取特定值的频率

在R中,如何根据值所属的bin对数据帧的每一行进行分类?

如何在从R数据框中删除重复项时保留上一行

数据帧中每一行的矩阵乘法

将列表中数据帧的每一行除以相应的矩阵值

从数据框python中删除一行中的重复数据,而不影响DataFrame的形状

如何在单独的数据帧中为每个值重复数据帧的每一行,然后将两者合并为一个数据帧?

如何在PyTorch的张量的每一行中随机设置固定数量的元素

如何在表的每一行中添加复选框以在tkinter中从phpmyadmin更新/删除行数据

如何在二维数组(矩阵)中查找每一行的最大值C#

如何在Pandas中为每个唯一行值删除重复项?

如何为另一列中的每一行重复所有列值

删除文件每一行中的重复项

如何在MATLAB中从3D矩阵的每一行中选择矢量元素?

在每一行中查找重复的值

如何在Hive中对文件进行重复数据删除并保持原始排序顺序?

如何在find命令中对-exec表达式进行重复数据删除?

如何删除包含数据的范围中的每一行?

如何在python中对pandas数据帧的每一行进行计算?

如何在熊猫的每一行中对值进行排名

如何在将数据保存在 SQL 中的同时进行重复数据删除

如何在 Apache Arrow 的 Parquet 文件的每一行中获取重复字段的最后一个值?

如何从熊猫数据框中的列中的每一行中删除重复值

如何在数据表的每一行中添加编辑/删除按钮

如何删除熊猫数据框中的每一行?

复制 Google Sheet 中的每一行,重复数据集中的第一列为空