请将二维数组[[1,2,3],[4,5,6]] 翻转为[[1,4],[2,5],[3,6]] 请分别使用transpose和swapaxes,将三维数组[[[1,2],[3,4]],[[5,6],[7,8]]]翻转为 [[[1,2],[5,6]], [[3 4], [7 8]]]
时间: 2024-11-13 16:16:23 浏览: 8
在Python中,你可以使用NumPy库来处理数组的变换。对于二维数组,可以先将其视为一维数组,然后进行翻转操作后再转回二维。
1. 对于二维数组`arr = [[1,2,3], [4,5,6]]`,要翻转成`[[1,4], [2,5], [3,6]]`,你可以这样做:
```python
import numpy as np
# 原始二维数组
arr_2d = np.array([[1,2,3], [4,5,6]])
# 首先转置(相当于列向量转行向量)
transposed_arr = arr_2d.T
# 再次按列进行拼接,得到想要的结果
flipped_arr = transposed_arr.reshape(-1, 2)
print(flipped_arr)
```
2. 对于三维数组`arr_3d = [[[1,2], [3,4]], [[5,6], [7,8]]]`,要翻转成`[[[1,2], [5,6]], [[3,4], [7,8]]]`,你可以先使用`swapaxes`函数交换第一轴和第二轴(即列和行),然后再交换第一轴和第三轴(即矩阵和矩阵):
```python
# 原始三维数组
arr_3d = np.array([[[1,2], [3,4]], [[5,6], [7,8]]])
# 使用swapaxes先交换第一轴和第二轴(列与行)
arr_transpose = arr_3d.swapaxes(0, 1)
# 再交换第一轴和第三轴(矩阵与矩阵)
final_arr = arr_transpose.swapaxes(0, 2)
print(final_arr)
```
阅读全文