编写一个函数 rotate_matrix(matrix, k),该函数接受一个2D Numpy数组和一个整数k作为输入要求:(1)k可以是任意整数(正数、负数或零) (2)使用NumPy的函数进行操作,不要使用循环
时间: 2024-10-27 10:06:16 浏览: 23
你可以编写一个名为 `rotate_matrix` 的函数,使用 NumPy 库来实现矩阵的旋转。当 k 为正数时,我们将顺时针旋转矩阵;如果 k 为负数,则逆时针旋转。下面是一个示例实现:
```python
import numpy as np
def rotate_matrix(matrix, k):
# 获取矩阵的维度
n = matrix.shape[0]
# 计算实际旋转次数,因为 NumPy 需要按行处理
k %= n
# 如果 k 为偶数,不需要旋转,直接返回原矩阵
if k % 2 == 0:
return matrix
# 使用 NumPy 的 roll 函数进行旋转
rotated_matrix = np.rot90(matrix, k=k // 2)
return rotated_matrix
# 示例
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
k = 2 # 正向旋转两圈
rotated = rotate_matrix(matrix, k)
print("Original Matrix:")
print(matrix)
print("\nRotated Matrix:")
print(rotated)
```
阅读全文