3.3 索引张量
如果我们需要获取一个包含除第一个点以外的所有点的张量怎么办? 使用范围索引符号很容易,它也适用于标准Python列表。 请注意:
# In[53]:
some_list = list(range(6))
some_list[:] # 所有元素
some_list[1:4] # 包含从元素1到元素4
some_list[1:] # 包含从元素1到列表的末尾
some_list[:4] # 从列表开始元素到第4个
some_list[:-1] # 从开始元素到倒数第二个元素
some_list[1:4:2] # 从元素1到元素4,间隔为2
为了实现我们的目标,我们可以对PyTorch张量使用相同的符号,其附加好处是,就像在NumPy和其他Python科学库中一样,我们可以对每个张量的维使用范围索引:
# In[54]:
points[1:] # 第一行之后的所有行; 隐式地所有列
points[1:, :] # 第一行之后的所有行; 所有列
points[1:, 0] # 第一行之后的所有行; 第一列
points[None] # 添加大小为1的维度,就像取消挤压一样
除了使用范围之外,PyTorch还具有强大的索引形式,称为高级索引,我们将在下一章中介绍。
网友评论