python中的冒号:,切片操作[:] 您所在的位置:网站首页 向量中的u是什么意思 python中的冒号:,切片操作[:]

python中的冒号:,切片操作[:]

2024-07-14 21:02| 来源: 网络整理| 查看: 265

来个简单的例子:  a = ['a', 'b', 'c', 'd'] # 得到倒数第一个元素: d print(a[-1]) # 得到第二个至倒数第二个元素: ['b', 'c'] print(a[1:-1]) # 取第一个元素至倒数二个元素: ['a', 'b', 'c'] print(a[:-1]) # 得到倒数第二个元素: c print(a[-2])

这里要注意:直接取[-1]是取最后一个元素,而[:-1]是取第一个元素至倒数二个元素

单冒号: 注意:

Python中 [:, [0]] = 0 和 [:, 0] = 0 有区别:[:, [0]] 会保持数组的维度(将明确取值的那一维度的维度大小变为1),而 [:, 0] 会将数组的维度降低一维(将明确取值的那一维度去掉)

示例:

定义5x4 的二维tensor数组

import torch X=torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10,11,12], [13,14,15,16], [17,18,19,20]])

取行元素:

# 输出矩阵张量X的所有行的第2列的元素,所以就是一个5行的tensor,自然的第二维度(第2列维度)被省略了,就变成了(5),而不是(5,1) print(X[:,2].shape) # (5) # 由于使用了[],所以会保持数组的维度,最终结果是(5,1) print(X[:,[2]].shape) # (5,1)

取列元素:

# 输出矩阵张量X的第2行的所有列的元素 print(X[2,:].shape) # (4)

取某些行/列元素:

X[:,  m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右。

# 即取矩阵张量X的所有行中的的第m到n-1列数据,含左不含右 # 这是取矩阵张量X的所有行中的的第1到2列数据 print(X[:,1:3].shape) # (5,2)

省略某个维度不写:

这种指定了某些维度的元素,但是有些维度省略没有写出来,这种默认是对省略的维度全部使用,和加了 :一样。

# 此处明确指定第2行,但没有指定列,所以使用所有列,输出第2行所有列的元素 print(X[2].shape) # (4)

双冒号 ::

双冒号代表的是步长

x[:,::-1],这段代码,其实就是索引,

第一个冒号(逗号之前的)很明显就是选择第一个维度的所有,也就是我们此处所有行,后面列上两个冒号,这样看,比如我们列表y=[1,2,3],y[:2]结果就是[1,2],也就是第一个冒号表示从第一个开始,那我们其实此处我们的逗号后面的第一个冒号也是从第一个开始,

那第二个冒号呢,其实第二个冒号代表结束,y=[1,2,3],y[::]结果就是[1,2,3],

第三个参数就是步长,步长不能为0,为-1代表逆序,如果为1,则代表全选,如果为2,代表隔一个取一个。看以下代码:  

Python中 [:, [0]] = 0 和 [:, 0] = 0 有什么区别_,,,[ 0]-CSDN博客



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有