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() 
相关推荐
火云洞红孩儿34 分钟前
告别界面孤岛:PyMe如何用一站式流程重塑Python GUI开发?
开发语言·python
TTGGGFF34 分钟前
控制系统建模仿真(四):线性控制系统的数学模型
人工智能·算法
UXbot41 分钟前
UI设计工具推荐合集
前端·人工智能·ui
kicikng44 分钟前
智能体来了(西南总部)实战指南:AI调度官与AI Agent指挥官的Prompt核心逻辑
人工智能·prompt·多智能体系统
抓个马尾女孩44 分钟前
为什么self-attention除以根号dk而不是其他值
人工智能·深度学习·机器学习·transformer
攻城狮7号1 小时前
不懂代码也能造?TRAE+GLM-4.6 手把手教你搭心理咨询智能客服小程序
python·小程序·uni-app·vue·trae·glm我的编程搭子·glm-4.6
叫我辉哥e11 小时前
新手进阶Python:办公看板集成ERP跨系统同步+自动备份+AI异常复盘
开发语言·人工智能·python
Loo国昌1 小时前
【LangChain1.0】第五阶段:RAG高级篇(高级检索与优化)
人工智能·后端·语言模型·架构
伊克罗德信息科技1 小时前
技术分享 | 用Dify搭建个人AI知识助手
人工智能
TOPGUS1 小时前
谷歌发布三大AI购物新功能:从对话式搜索到AI代你下单
大数据·人工智能·搜索引擎·chatgpt·谷歌·seo·数字营销