首页 > 解决方案 > 如何进行 NxN 矩阵的均值、标准差和众数统计

问题描述

我想知道如何做 NxN 矩阵的平均值、标准差和模式统计。

有人可以建议如何在 python 中执行此操作吗?

标签: pythonmatrixstatisticsmeanstandard-deviation

解决方案


您可以通过计算出现次数并返回最大值来获取模式。
平均值是总和除以计数。
对于 stddev,您可以将平方距离相加,将其除以计数减 1,然后取平方根。

#! /usr/env python

import math

matrix = []
for i in range(9):
    matrix.append([])
    for x in range(9):
        matrix[i].append(i+x*2)

mode = {}
avg = 0
stddev = 0
count = 0
for i in range(len(matrix)):
    for x in range(len(matrix[i])):
        avg+=matrix[i][x]
        if matrix[i][x] in mode:
            mode[matrix[i][x]]+=1
        else:
            mode[matrix[i][x]]=1
        count+=1
maxcount = max(mode,key=mode.get)
avg /= count
# if you calculate the count from the dimensions...
# avg /= len(matrix)*len(matrix[0])
print(f'Mode = {maxcount} with {mode[maxcount]} occurrences')
print(f'Avg = {avg}')

# get the std dev
for i in range(len(matrix)):
    for x in range(len(matrix[i])):
        stddev += (matrix[i][x]-avg) ** 2
stddev /= count-1
print(f'Stddev = {math.sqrt(stddev)}')

推荐阅读