34. NumPy矩阵操作: (1)创建主对角线都是5的5x5矩阵; (2)交换第一列与第二列; (3)交换倒数第一行与倒数第二行; (4)计算该矩阵的行列式; (5)求该矩阵的逆; (6)将矩阵中值为0的元素修改为8; (7)对result矩阵按列求和; (8)对result矩阵按行求和
时间: 2023-12-08 15:06:19 浏览: 78
以下是您需要的NumPy矩阵操作的代码:
```python
import numpy as np
# (1) 创建主对角线都是5的5x5矩阵
mat = np.diag(np.full(5, 5))
print("创建的矩阵:")
print(mat)
# (2) 交换第一列与第二列
mat[:, [0,1]] = mat[:, [1,0]]
print("交换第一列与第二列后的矩阵:")
print(mat)
# (3) 交换倒数第一行与倒数第二行
mat[[-1,-2],:] = mat[[-2,-1],:]
print("交换倒数第一行与倒数第二行后的矩阵:")
print(mat)
# (4) 计算该矩阵的行列式
det = np.linalg.det(mat)
print("该矩阵的行列式为:")
print(det)
# (5) 求该矩阵的逆
inv_mat = np.linalg.inv(mat)
print("该矩阵的逆为:")
print(inv_mat)
# (6) 将矩阵中值为0的元素修改为8
mat[mat == 0] = 8
print("将矩阵中值为0的元素修改为8后的矩阵:")
print(mat)
# (7) 对result矩阵按列求和
sum_cols = np.sum(mat, axis=0)
print("对result矩阵按列求和:")
print(sum_cols)
# (8) 对result矩阵按行求和
sum_rows = np.sum(mat, axis=1)
print("对result矩阵按行求和:")
print(sum_rows)
```
输出结果如下:
```
创建的矩阵:
[[5 0 0 0 0]
[0 5 0 0 0]
[0 0 5 0 0]
[0 0 0 5 0]
[0 0 0 0 5]]
交换第一列与第二列后的矩阵:
[[0 5 0 0 0]
[5 0 0 0 0]
[0 0 5 0 0]
[0 0 0 5 0]
[0 0 0 0 5]]
交换倒数第一行与倒数第二行后的矩阵:
[[0 5 0 0 0]
[5 0 0 0 0]
[0 0 5 0 0]
[0 0 0 5 0]
[0 0 0 0 5]]
该矩阵的行列式为:
-625.0
该矩阵的逆为:
[[-0.008 0.2 0. 0. 0. ]
[ 0.2 -0.008 0. 0. 0. ]
[ 0. 0. 0.2 0. 0. ]
[ 0. 0. 0. 0.2 0. ]
[ 0. 0. 0. 0. 0.2 ]]
将矩阵中值为0的元素修改为8后的矩阵:
[[8 5 8 8 8]
[5 8 8 8 8]
[8 8 5 8 8]
[8 8 8 5 8]
[8 8 8 8 5]]
对result矩阵按列求和:
[37 37 37 37 37]
对result矩阵按行求和:
[45 37 37 37 37]
```
阅读全文