You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中按张量值删除行:寻求类似pandas drop的简洁方案

PyTorch 删除指定值的行(已知行值未知索引)

可以通过逐行匹配目标值+布尔索引的方式实现简洁的删行操作,无需手动拼接张量:

import torch

x = torch.tensor([
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
])

# 定义要删除的目标行
target_row = torch.tensor([5, 6, 7, 8])

# 生成掩码:判断每一行是否与目标行完全匹配,取反后筛选保留的行
mask = ~torch.all(x == target_row, dim=1)
result = x[mask]

print(result)
# 输出:
# tensor([[ 1,  2,  3,  4],
#         [ 9, 10, 11, 12]])

关键逻辑说明:

  • x == target_row:对张量的每个元素做相等性判断,得到与原张量形状一致的布尔张量
  • torch.all(..., dim=1):沿行维度(dim=1)取逻辑与,生成一维布尔张量,标记每行是否完全匹配目标行
  • ~ 对掩码取反,得到需要保留的行的标记,最后通过布尔索引x[mask]直接得到删行后的结果

内容的提问来源于stack exchange,提问作者David Siret Marqués

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:04:53