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() 
相关推荐
User_芊芊君子3 分钟前
CANN_PTO_ISA虚拟指令集全解析打造跨平台高性能计算的抽象层
人工智能·深度学习·神经网络
初恋叫萱萱6 分钟前
CANN 生态安全加固指南:构建可信、鲁棒、可审计的边缘 AI 系统
人工智能·安全
alvin_20056 分钟前
python之OpenGL应用(二)Hello Triangle
python·opengl
机器视觉的发动机11 分钟前
AI算力中心的能耗挑战与未来破局之路
开发语言·人工智能·自动化·视觉检测·机器视觉
铁蛋AI编程实战15 分钟前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
HyperAI超神经19 分钟前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
jiang_changsheng27 分钟前
RTX 2080 Ti魔改22GB显卡的最优解ComfyUI教程
python·comfyui
JoySSLLian33 分钟前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
BestSongC34 分钟前
行人摔倒检测系统 - 前端文档(1)
前端·人工智能·目标检测
模型时代40 分钟前
Anthropic明确拒绝在Claude中加入广告功能
人工智能·microsoft