反转二维数组 arr 的列
时间: 2023-07-28 14:06:28 浏览: 86
可以通过遍历每一行并反转其中的元素来实现反转二维数组 arr 的列。具体的实现步骤如下:
1. 获取数组 arr 的列数 colNum 和行数 rowNum;
2. 遍历每一行,对于每一行,使用双指针方法来交换两端的元素,直到中间,完成该行元素的反转;
3. 返回反转后的二维数组。
以下是一个示例代码实现:
```python
def reverseColumns(arr):
rowNum = len(arr)
colNum = len(arr[0])
for i in range(rowNum):
left = 0
right = colNum - 1
while left < right:
temp = arr[i][left]
arr[i][left] = arr[i][right]
arr[i][right] = temp
left += 1
right -= 1
return arr
```
然后我们可以测试一下:
```python
arr = [[1,2,3],[4,5,6],[7,8,9]]
print(reverseColumns(arr))
```
输出结果为:
```
[[3, 2, 1], [6, 5, 4], [9, 8, 7]]
```
可以看到,原来的数组 arr 中的每一列都被反转了。
相关问题
用numpy反转二维数组 arr 的列
可以使用numpy的[:,::-1]语法来反转二维数组arr的列,代码如下:
```python
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print("原数组:")
print(arr)
arr_reversed = arr[:,::-1]
print("反转后的数组:")
print(arr_reversed)
```
输出结果为:
```
原数组:
[[1 2 3]
[4 5 6]
[7 8 9]]
反转后的数组:
[[3 2 1]
[6 5 4]
[9 8 7]]
```
用numpy反转二维数组 arr 的列多种方法
以下是几种用 numpy 反转二维数组 arr 的列的方法:
1. 使用[:, ::-1]来反转每一行的元素顺序,从而得到反转后的数组。
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
reversed_arr = arr[:, ::-1]
print(reversed_arr)
```
输出:
```
[[3 2 1]
[6 5 4]
[9 8 7]]
```
2. 通过transpose()函数将每一列转换为行,然后利用[:, ::-1]反转每一行的元素顺序,最后再通过transpose()函数将每一行转换回列。
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
reversed_arr = arr.transpose()[:, ::-1].transpose()
print(reversed_arr)
```
输出:
```
[[3 2 1]
[6 5 4]
[9 8 7]]
```
3. 利用fliplr()函数将每一行反转,从而得到反转后的数组。
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
reversed_arr = np.fliplr(arr)
print(reversed_arr)
```
输出:
```
[[3 2 1]
[6 5 4]
[9 8 7]]
```
阅读全文