PyTorch_张量索引操作

简单行,列索引操作

python 复制代码
import torch 
import numpy as np 

# 简单行列索引
def test01():
    data = torch.randint(0, 10, [4, 5])
    print(data)

    # 获得指定的某行元素
    print(data[0])

    # 获得指定某个列的元素
    print(data[:, 0])  # 逗号前面表示行,逗号后面表示列。冒号表示所有行或者所有列

    # 获得指定位置的某个元素
    print(data[1, 2])

    # 表示先获得前三行,再获得第三列的数据
    print(data[:3, 2])

    # 表示获得前三行的前两列
    print(data[:3, :2])

# 列表索引
def test02():
    data = torch.randint(0, 10, [4, 5])
    print(data)

    # 如果索引的行列都是一个一维的列表,那么两个列表的长度必须相等
    # 表示获得 (0, 0), (2, 1), (3, 2) 三个位置的元素
    print(data[[0, 2, 3], [0, 1, 2]])

    # 表示获得 0, 2, 3 行的 0, 1, 2 列
    print(data[[[0], [2], [3]], [0, 1, 2]])


if __name__ == "__main__":
    test02() 

布尔索引

python 复制代码
import torch 
import numpy as np 

# 布尔索引
def test01():
    torch.manual_seed(0)
    data = torch.randint(0, 10, [4, 5])
    print(data)

    # 能够获得该张量中所有大于3的元素
    # 张量可以与数字做比较
    print(data > 3)
    print(data[data > 3])

    # 返回第2列元素大于6的行
    print(data[data[:, 1] > 6])

    # 返回第2行元素大于3的所有列
    print(data[:, data[1] > 3])


# 多维索引
def test02():
    torch.manual_seed(0)
    data = torch.randint(0, 10, [3, 4, 5])
    print(data)

    # 选择第0行的所有元素
    print(data[0, :, :])

    # 按照第1哥维度选择第0元素, 是按行
    print(data[:, 0, :])

    # 按照第2个维度选择第0元素, 是按列
    print(data[:, :, 0])

if __name__ == "__main__":
    test02() 
相关推荐
jinxindeep12 分钟前
CVPR26最佳论文提名:NitroGen,面向通用游戏智能体的 视觉-动作基础模型
人工智能·游戏
小雨下雨的雨4 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
我没胡说八道6 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟6 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love6 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇6 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明6 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc6 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技6 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本6 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规