[:, :, None, None]操作的理解

该文介绍了Python中使用[:,None,None]作为切片操作来改变数组维度的方法,特别是在NumPy和PyTorch库中的应用。通过实例展示了如何利用None添加新的轴,从而扩展数组的形状,例如将一个二维数组转换为四维数组。同时,文章还提到了基本的切片操作,如单引号和双引号切片,并解释了切片的起始、结束和步长参数。
摘要由CSDN通过智能技术生成

[:, None, None]是改变数组维度的方式

在这里插入图片描述

import numpy as np 
a=np.array([[3,3,3],[4,4,4],[5,5,5]])
print(a[:,None])

output:

[[[3 3 3]]

 [[4 4 4]]

 [[5 5 5]]]

理解:

  • 把 冒号: 看做剥层器,一个冒号,就可以剥开最外层的 中括号,它是用来确定None的加中括号的位置,而不是吧外层的中括号给去掉!!
  • 把None,看做加中括号的操作,一个None就是加一层中括号的操作

切片[:, None, None]的含义

[:, :, None, None]操作

import torch 
time = torch.randn(2,3)
print(time.shape)  # torch.Size([2, 3])

c = time[:, :, None, None]
print(c.shape) # torch.Size([2, 3, 1, 1])

查看内容:

print(time)
print(c) 
tensor([[ 1.4890,  0.0489, -0.5257],
        [-0.6525,  1.0431, -0.2119]])
tensor([[[[ 1.4890]],

         [[ 0.0489]],

         [[-0.5257]]],


        [[[-0.6525]],

         [[ 1.0431]],

         [[-0.2119]]]])
print(time)
print(time[:,None,None])
tensor([[ 1.4890,  0.0489, -0.5257],
        [-0.6525,  1.0431, -0.2119]])
tensor([[[[ 1.4890,  0.0489, -0.5257]]],


        [[[-0.6525,  1.0431, -0.2119]]]])

切片

import numpy as np 
a = np.arange(0, 9)
print(a)  # [0 1 2 3 4 5 6 7 8]
print(a[1:3]) # [1 2]
print(a[:3])# [0 1 2]
print(a[1:])# [1 2 3 4 5 6 7 8]
print(a[1:-2])# [1 2 3 4 5 6]
print(a[1::3]) # [1 4 7]
  • 在单引号切片操作中,中括号内第一个位置的数字表示的是起始位置,第二个数字表示的是结束位置,到这里结束但是不包含这个数。
  • 在双引号切片操作中,中括号内第一个数字表示的是起始位置,第二个数字表示的是步长或叫间隔。

切片操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值