用Python完成以下操作A、创建一个6*6的矩阵 B、矩阵第1行数据为[1,2,3,4,5,6],第二行数据为[2,3,4,5,6,1],以此类推,第6行数据为 [6,1,2,3,4,5]。最终得到每行数据不同,每列数据也不同的矩阵。 2)创建4个相同的3*3的对角矩阵,对角线元素均为[1,2,3],再使用bmat函数合并4个对 角矩阵为1个6*6矩阵 3)利用操作2)中的6*6矩阵,返回该矩阵的转置矩阵 4)先尝试横向堆叠操作1)中的矩阵和操作3)中的矩阵,再尝试纵向堆叠操作1)中的矩 阵和操作3)中的矩阵 5)创建一个5*5的随机数组,保存并命名为’save_arr’,然后读取文件’save_arr’并输出 6)创建一个3*3的随机数组,横向对元素重复3次
时间: 2023-04-09 16:02:30 浏览: 656
1)以下是用Python完成操作1)的代码:
```python
import numpy as np
# 创建一个6*6的矩阵
mat = np.zeros((6, 6), dtype=int)
# 给矩阵赋值
for i in range(6):
for j in range(6):
mat[i][j] = (i + j) % 6 + 1
print(mat)
```
2)以下是用Python完成操作2)的代码:
```python
import numpy as np
# 创建4个相同的3*3的对角矩阵
mat1 = np.diag([1, 2, 3])
mat2 = np.diag([1, 2, 3])
mat3 = np.diag([1, 2, 3])
mat4 = np.diag([1, 2, 3])
# 合并4个对角矩阵为1个6*6矩阵
mat = np.bmat([[mat1, np.zeros((3, 3))], [np.zeros((3, 3)), mat2]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat3]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat4]])
print(mat)
```
3)以下是用Python完成操作3)的代码:
```python
import numpy as np
# 利用操作2)中的6*6矩阵,返回该矩阵的转置矩阵
mat1 = np.diag([1, 2, 3])
mat2 = np.diag([1, 2, 3])
mat3 = np.diag([1, 2, 3])
mat4 = np.diag([1, 2, 3])
mat = np.bmat([[mat1, np.zeros((3, 3))], [np.zeros((3, 3)), mat2]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat3]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat4]])
mat_T = mat.T
print(mat_T)
```
4)以下是用Python完成操作4)的代码:
```python
import numpy as np
# 横向堆叠操作1)中的矩阵和操作3)中的矩阵
mat1 = np.diag([1, 2, 3])
mat2 = np.diag([1, 2, 3])
mat3 = np.diag([1, 2, 3])
mat4 = np.diag([1, 2, 3])
mat = np.bmat([[mat1, np.zeros((3, 3))], [np.zeros((3, 3)), mat2]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat3]])
mat = np.bmat([[mat, np.zeros((6, 3))], [np.zeros((6, 3)), mat4]])
mat_T = mat.T
# 纵向堆叠操作1)中的矩阵和操作3)中的矩阵
mat_h = np.hstack((mat, mat_T))
mat_v = np.vstack((mat, mat_T))
print(mat_h)
print(mat_v)
```
5)以下是用Python完成操作5)的代码:
```python
import numpy as np
# 创建一个5*5的随机数组,保存并命名为’save_arr’
save_arr = np.random.rand(5, 5)
np.save('save_arr', save_arr)
# 读取文件’save_arr’并输出
load_arr = np.load('save_arr.npy')
print(load_arr)
```
6)以下是用Python完成操作6)的代码:
```python
import numpy as np
# 创建一个3*3的随机数组
arr = np.random.rand(3, 3)
# 横向对元素重复3次
arr_repeat = np.repeat(arr, 3, axis=1)
print(arr_repeat)
```
阅读全文