创建一个3乘3矩阵,其元素为分别为1、...、9,如下图所示。 [1 2 3] [4 5 6] [7 8 9] ①求每行、每列和数组的最大值和最小值 ②求每行、每列和数组的峰值 ③求每行、每列和数组的和,对角线和 ④求每行、每列和数组的平均值和方差
时间: 2024-09-17 17:07:15 浏览: 52
首先,我们创建一个3x3的矩阵,其元素从1到9:
```
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
```
接下来,我们可以依次计算每个部分的需求:
① 求每行、每列和整个数组的最大值和最小值:
```python
row_maxes = [max(row) for row in matrix]
col_maxes = [max(col) for col in zip(*matrix)] # 使用zip(*)转置矩阵
matrix_max = max(max(matrix))
row_mins = [min(row) for row in matrix]
col_mins = [min(col) for col in zip(*matrix)]
matrix_min = min(min(matrix))
```
② 求每行、每列和数组的峰值(最大值):
- 对于每一行和每一列,最大的数就是峰值。
- 对于整个矩阵,如果所有元素都相等,则不存在峰值;若不全等,最大值即为矩阵的峰值。
③ 求每行、每列和数组的和,以及对角线和:
```python
row_sums = [sum(row) for row in matrix]
col_sums = [sum(col) for col in zip(*matrix)]
main_diagonal_sum = sum(matrix[i][i] for i in range(3))
secondary_diagonal_sum = sum(matrix[i][2-i] for i in range(3))
```
④ 求每行、每列和数组的平均值和方差:
```python
row_avgs = [sum(row)/len(row) for row in matrix]
col_avgs = [sum(col)/len(col) for col in zip(*matrix)]
matrix_avg = sum(sum(matrix))/sum([len(row) for row in matrix])
# 计算方差需要先求出平均值,然后计算每个元素与平均值的差的平方和除以元素总数
variance = sum((val - matrix_avg)**2 for row in matrix for val in row) / (3*3)
```
现在,你可以根据这些代码片段来获取所需的统计信息。如果你需要具体的代码实例,我可以为你展示如何将这些步骤整合在一起。有任何疑问,请告诉我。
阅读全文