当前位置: 首页 > article >正文

PyTorch基本使用——张量的索引操作

在操作张量时,经常要去获取某些元素进行处理或者修改操作,在这里需要了解torch中的索引操作。

准备数据:

data = torch.randint(0,10,[4,5])
print('data--->',data)

输出结果:

data---> tensor([[3, 9, 4, 0, 5],
        [7, 5, 9, 9, 7],
        [5, 9, 8, 9, 7],
        [9, 2, 6, 7, 7]])
  • 简单行、列索引

    print('第一行:',data[0])
    print('第一列:',data[:,0])
    

    输出结果:

    第一行: tensor([3, 9, 4, 0, 5])
    第一列: tensor([3, 7, 5, 9])
    
  • 列表索引

    print('-----------------返回(0,1)、(1,2) 2个位置的元素------------------')
    print(data[[0,1],[1,2]])
    print('-----------------返回0、1 行的1、2 列共4个元素------------------')
    print(data[[[0],[1]],[1,2]])
    

    输出结果:

    -----------------返回(0,1)、(1,2) 2个位置的元素------------------
    tensor([9, 9])
    -----------------返回0、1 行的1、2 列共4个元素------------------
    tensor([[9, 4],
            [5, 9]])
    
  • 范围索引

    print('-----------------前3行、前2列的数据------------------')
    print(data[:3,:2])
    print('-----------------第2行到最后的前2列数据------------------')
    print(data[2:,:2])
    

    输出结果:

    -----------------前3行、前2列的数据------------------
    tensor([[3, 9],
            [7, 5],
            [5, 9]])
    -----------------第2行到最后的前2列数据------------------
    tensor([[5, 9],
            [9, 2]])
    
  • 布尔索引

    print('-----------------第三列大于5的行数据------------------')
    print(data[data[:,2] > 5])
    print('-----------------第二行大于5的行数据------------------')
    print(data[:,data[1] > 5])
    

    输出结果:

    -----------------第三列大于5的行数据------------------
    tensor([[7, 5, 9, 9, 7],
            [5, 9, 8, 9, 7],
            [9, 2, 6, 7, 7]])
    -----------------第二行大于5的行数据------------------
    tensor([[3, 4, 0, 5],
            [7, 9, 9, 7],
            [5, 8, 9, 7],
            [9, 6, 7, 7]])
    
  • 多维索引

    data = torch.randint(0,10,[3,4,5])
    print(data)
    # 获取0轴上的第一个数据
    print(data[0,:,:])
    # 获取1轴上的第一个数据
    print(data[:,0,:])
    # 获取2轴上的第一个数据
    print(data[:,:,0])
    

    输出结果:

    tensor([[[8, 3, 6, 1, 5],
             [5, 0, 4, 3, 8],
             [8, 3, 3, 5, 0],
             [6, 4, 0, 8, 4]],
    
            [[7, 2, 3, 8, 5],
             [6, 2, 9, 5, 0],
             [4, 2, 7, 1, 1],
             [5, 4, 4, 1, 1]],
    
            [[2, 4, 7, 2, 5],
             [6, 1, 4, 5, 6],
             [9, 2, 3, 1, 0],
             [2, 1, 2, 7, 9]]])
    tensor([[8, 3, 6, 1, 5],
            [5, 0, 4, 3, 8],
            [8, 3, 3, 5, 0],
            [6, 4, 0, 8, 4]])
    tensor([[8, 3, 6, 1, 5],
            [7, 2, 3, 8, 5],
            [2, 4, 7, 2, 5]])
    tensor([[8, 5, 8, 6],
            [7, 6, 4, 5],
            [2, 6, 9, 2]])
    
原文地址:https://blog.csdn.net/dwjf321/article/details/144331314
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/428184.html

相关文章:

  • opencv光流法推测物体的运动
  • Spring Boot日志:从Logger到@Slf4j的探秘
  • ChatGPT 最新推出的 Pro 订阅计划,具备哪些能力 ?
  • uniapp 微信小程序webview 和 h5数据通信
  • 【AWS re:Invent 2024】一文了解EKS新功能:Amazon EKS Auto Mode
  • Python实现BBS论坛自动签到【steamtools论坛】
  • Python 入门教程(2)搭建环境 | 2.4、VSCode配置Node.js运行环境
  • 如何利用DBeaver配置连接MongoDB和人大金仓数据库
  • django 实战(python 3.x/django 3/sqlite)
  • AI by Hand:手搓 AI 模型
  • git遇见冲突怎么解决?
  • Dell电脑安装Centos7问题处理
  • Python Virtualenv 虚拟环境迁移, 换新电脑后 Python 环境快速迁移 Virtualenv 环境配置管理,实测篇
  • 黑马程序员Java项目实战《苍穹外卖》Day12
  • 十六、大数据之Shell 编程
  • 第四十一天 ASP应用 HTTP.sys 漏洞 iis6文件解析漏洞和短文件漏洞 access数据库泄露漏洞
  • L-BFGS 方法实现
  • Hive 中 Order By、Sort By、Cluster By 和 Distribute By 的详细解析
  • 流量转发利器之Burpsuite概述(1)
  • 监控易管理平台7.0助力打造智慧运维体系