Python切片操作:[:,0]或[:-1]

目录

一、一维数组

 二、二维数组


一、一维数组

import torch

a = torch.tensor([1,2,3,4])   #out:tensor([1, 2, 3, 4])

b = a.numpy()

print(b)   #out:[1 2 3 4]

 1、一个参数

print(b[-1])      #out:4

2、两个参数 

【说明】b[i:j]  #表示复制b[i]b[j-1],以生成新的list对象

  • s[i:j] 表示获取a[i]到a[j-1]
  • s[:-1]去掉最后一个字符
  • s[:-n]去掉最后n个字符
  • s[-2:]取最后两个字符
  • s[i:j:k]这种格式呢,i,j与上面的一样,但k表示步长,默认为1
  • s[::-1]是从最后一个元素到第一个元素复制一遍(反向) 

【举例】

print(b[1:3])    #[2,3]

print(b[:-1])    #[1 2 3]     -1:倒数第一个

print(b[1:])     #[2 3 4]

print(b[:])      #[1,2,3,4]

3、三个参数

【说明】 b[i:j:s]   s:步进(默认为1,-1表示翻转)当s<0时,i默认为-1,j默认为-len(b)-1

print(b[::-1])   #[4 3 2 1]   

print(b[-1:-len(b)-1:-1])   #[4 3 2 1]  

print(b[2::])    #[3,4]
 
print(b[2::-1])  #[3 2 1]   index=2作为头翻转/先取[1,2,3]再翻转得[3,2,1]

print(b[:1:-1])  #[4 3]     index=1作为尾翻转/先取[3,4]再翻转得[4,3]

 二、二维数组

  • X[:,0]取所有行的第0个数据
  • X[:,1] 取所有行的第1个数据
  • X[:,1:]第一维全部取,即所有行,列上从第一列开始取,不要第0列
  • X[1,:]是取第1维中下标为1(第一行)的元素的所有数据,第1行(从0开始)
  • X[:2,1:]第一维取下标2之前的,即第2行之前(0,1两行),列上从第一列开始取,不要第0列
import torch

x = torch.tensor([[1,2,3],[4,5,6]])

x = x.numpy()

print(x)  #[[1 2 3]
          # [4 5 6]]

 【说明】x[,] 逗号之前表示行,之后表示列

               x[:,:] 分号之前表示起始行(列),之后表示结束行(列)

print(x[:,0])     #[1 4]             所有行的第1个元素

print(x[:,1:])    #[[2 3]            所有行从第1个元素开始到最后一个元素
                  # [5 6]]

print(x[1,:])     #[4 5 6]           第1行的所有元素

print(x[:2,1:])   #[[2 3]            第0行和第1行的第1个元素到最后一个元素
                  # [5 6]]

链接:

1、https://blog.csdn.net/weixin_43629813/article/details/101122997

2、https://blog.csdn.net/qq_41973536/article/details/82690242?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

 

 

 

 

 

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值