在PaddlePaddle中的Tensor索引与切片的规则如下:
- 基于 0-n 的下标进行索引
- 如果下标为负数,则从尾部开始
- 通过冒号 : 分隔切片参数 start:stop:step 来进行切片操作,其中 start、stop、step 均可缺省
假设有一维的Tensor: ndim_1_tensor = paddle.to_tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])
- 取首端元素:ndim_1_tensor[0]
- 取末端元素:ndim_1_tensor[-1]
- 取所有元素:ndim_1_tensor[:]
- 取索引3之前的所有元素:ndim_1_tensor[:3]
- 取从索引6开始的所有元素:ndim_1_tensor[6:]
- 取从索引3开始到索引6之前的所有元素:ndim_1_tensor[3:6]
- 间隔3取所有元素:ndim_1_tensor[::3]
- 逆序取所有元素:ndim_1_tensor[::-1]
范例程序如下:
ndim_1_tensor = paddle.to_tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])
print("Origin Tensor:", ndim_1_tensor.numpy())
print("First element:", ndim_1_tensor[0].numpy())
print("Last element:", ndim_1_tensor[-1].numpy())
print("All element:", ndim_1_tensor[:].numpy())
print("Before 3:", ndim_1_tensor[:3].numpy())
print("From 6 to the end:", ndim_1_tensor[6:].numpy())
print("From 3 to 6:", ndim_1_tensor[3:6].numpy())
print("Interval of 3:", ndim_1_tensor[::3].numpy())
print("Reverse:", ndim_1_tensor[::-1].numpy())
运行结果如下:
First element: [0]
Last element: [8]
All element: [0 1 2 3 4 5 6 7 8]
Before 3: [0 1 2]
From 6 to the end: [6 7 8]
From 3 to 6: [3 4 5]
Interval of 3: [0 3 6]
Reverse: [8 7 6 5 4 3 2 1 0]
网友评论