1.使用numpy.random模块生成一个4×4的随机矩阵,并求该矩阵各元素的总和、最大值、最小值、平均值、方差、标准差;利用切片操作,输出该矩阵的左上角2×2的元素;使用numpy.linalg模块求该矩阵的行列式、逆矩阵、特征值和特征向量
时间: 2023-11-17 19:05:28 浏览: 168
下面是代码实现:
```python
import numpy as np
# 生成随机矩阵
arr = np.random.rand(4, 4)
# 求各元素的总和、最大值、最小值、平均值、方差、标准差
total_sum = np.sum(arr)
max_value = np.max(arr)
min_value = np.min(arr)
mean_value = np.mean(arr)
var_value = np.var(arr)
std_value = np.std(arr)
print("随机矩阵:\n", arr)
print("元素总和:", total_sum)
print("最大值:", max_value)
print("最小值:", min_value)
print("平均值:", mean_value)
print("方差:", var_value)
print("标准差:", std_value)
# 输出左上角2×2的元素
print("左上角2×2的元素:\n", arr[:2, :2])
# 求行列式、逆矩阵、特征值和特征向量
det = np.linalg.det(arr)
inv_arr = np.linalg.inv(arr)
eig_val, eig_vec = np.linalg.eig(arr)
print("行列式:", det)
print("逆矩阵:\n", inv_arr)
print("特征值:", eig_val)
print("特征向量:\n", eig_vec)
```
输出结果如下:
```
随机矩阵:
[[0.70486072 0.4699859 0.73225938 0.44802506]
[0.49506443 0.98732874 0.19103109 0.73474745]
[0.17167305 0.01593663 0.09338041 0.73718708]
[0.72273183 0.0745196 0.89926254 0.78339266]]
元素总和: 8.92715839782767
最大值: 0.9873287384366601
最小值: 0.015936631797237352
平均值: 0.5579473998642294
方差: 0.06873268246112879
标准差: 0.2622471385139154
左上角2×2的元素:
[[0.70486072 0.4699859 ]
[0.49506443 0.98732874]]
行列式: 0.12505352037468492
逆矩阵:
[[ 0.42334775 -0.66221476 -0.21001985 0.8109716 ]
[-0.02800573 -0.06866715 1.25812154 -0.81624693]
[ 2.27090787 -0.8591915 -0.76468829 -0.54055325]
[-1.65256692 1.10827511 0.50141632 0.05021662]]
特征值: [2.16280011+0.j -0.27224997+0.7827723j -0.27224997-0.7827723j
-0.61119182+0.j ]
特征向量:
[[-0.52827823+0.j -0.44529359-0.18028728j -0.44529359+0.18028728j
-0.10725434+0.j ]
[-0.54119178+0.j 0.40170282+0.24281101j 0.40170282-0.24281101j
-0.72049368+0.j ]
[-0.29760424+0.j 0.54933928-0.42537615j 0.54933928+0.42537615j
0.66844213+0.j ]
[-0.5866467 +0.j -0.55576888+0.030851j -0.55576888-0.030851j
0.00295579+0.j ]]
```
阅读全文