如何进行 NxN 矩阵的均值、标准差和众数统计
Posted
技术标签:
【中文标题】如何进行 NxN 矩阵的均值、标准差和众数统计【英文标题】:How to make the mean, standard deviation and mode statistics of an NxN matrix 【发布时间】:2021-08-17 18:51:41 【问题描述】:我想知道如何做 NxN 矩阵的平均值、标准差和众数统计。
有人可以建议如何在 python 中执行此操作吗?
【问题讨论】:
在向其他人寻求帮助之前,您可以在谷歌上搜索关键字,例如“python numpy 数组均值标准差模式统计”。你得到什么结果?点击链接,找到相关的方法/函数,然后尝试编写一些代码。 如果你还在苦苦挣扎,这里是numpy数组的主要统计方法的链接numpy.org/doc/stable/reference/routines.statistics.html 【参考方案1】:您可以通过计算出现次数并返回最大值来获取模式。 平均值是总和除以计数。 对于 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)')
【讨论】:
【参考方案2】:正如评论中指出的,这很容易通过搜索找到。
scipy 库为所有这些提供函数,无论是整个数组还是指定轴。 scipy.stats.describe 将同时给出均值和方差,标准差很容易从方差中计算出来。对于模式使用 scipy.stats.mode
对于均值和标准差,分别有 numpy.mean 和 numpy.std。
【讨论】:
以上是关于如何进行 NxN 矩阵的均值、标准差和众数统计的主要内容,如果未能解决你的问题,请参考以下文章