'''
Author: 365JHWZGo
Description: 理解 a[:,time_step,:] 和 a[:time_step:]
Date: 2021/11/3 21:23
FilePath: day1103-3.py
'''
#导包
import torch
import numpy as np
#创造数据
a = np.linspace(1,9,9).reshape(3,3,1)
#转化为tensor数据
a = torch.from_numpy(a)
#打印tensor a
print('a',a)
print('a.size(1)',a.size(1))
#循环遍历
for time_step in range(a.size(1)):
out = a[:,time_step,:]
print('a[:,time_step,:] ', out )
print('------------------------------------')
for time_step in range(a.size(1)):
out = a[:time_step:]
print('a[:time_step:] ', out )
打印出a来是一个(331)的矩阵向量【3->黑色,3->红色,1->绿色】
打印出的a[:,time_step,:]
详细解说一下这个循环
for time_step in range(a.size(1)):
#a.size(1) == 3,所以它是0->2循环三遍
out = a[:,time_step,:]
#当time_step = 0时,a[:,time_step,:] => a[:,0,:] 截取第二维度中下标为0的数
a[::] 是数组的截取 => a[起始下标:终止下标:每次截取的长度]
out = a[:time_step:]
当time_step==0时,截取的是 [0,0) , 所以为空
当time_step==1时,截取的是 [0,1) , 所以截取的是第一维向量第一个数据
当time_step==2时,截取的是 [0,2) , 所以截取的是第一维向量的前两个数据