python中[ ]的一些用法(更新中)

在看代码的时候发现了很多[:-1]或者其他[ ]的用法,打算搜一搜总结一下,自用

切片

切片是从序列(如列表、元组或张量)中提取部分元素的一种方式。

基本语法是[start : stop : step]

start : 起始索引,包含在切片结果中

stop : 结束索引,不包含再切片结果中。所以切片是一个左闭右开的区间

step : 步长,表示每次取元素的间隔

例如:

x.shape[:-1]中的[:-1]是一个切片操作:表示从头到尾遍历(除了最后一个元素)。
-1表示最后一个元素的索引。
所以,x.shape[:-1]表示从x.shape中获取从头到倒数第二个元素的所有元素。

x = [1, 2, 3, 4, 5]
print(x[:-1])  # 输出 [1, 2, 3, 4]

x[-3:]  # 最后三个元素

另一个切片的用法:x[..., None, :]

x = torch.randn(2, 3)  # 假设 x 是形状为 (2, 3) 的张量
print(x.shape)         # 输出 torch.Size([2, 3])
x_expanded = x[..., None, :]  
print(x_expanded.shape)  # 输出 torch.Size([2, 1, 3])

None:在这里添加一个新的维度

列表

方括号可以创建列表

my_list = [1, 2, 3, 4, 5]

多维数组和张量

import numpy as np

# 创建一个2x2的数组
arr = np.array([[1, 2], [3, 4]])

# 访问特定元素
print(arr[0, 1])  # 输出 2
print(arr[:, 0])  # 输出 [1 3] (访问所有行的第一个元素)

[:, 0]:这是一个切片操作,其中包含两个部分:::冒号表示所有行,即从第0行到最后一行。
0:表示第0列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值