【问题标题】:How to make the mean, standard deviation and mode statistics of an NxN matrix如何进行 NxN 矩阵的均值、标准差和众数统计
【发布时间】:2021-08-17 18:51:41
【问题描述】:

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

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

【问题讨论】:

  • 在向其他人寻求帮助之前,您可以在谷歌上搜索关键字,例如“python numpy 数组均值标准差模式统计”。你得到什么结果?点击链接,找到相关的方法/函数,然后尝试编写一些代码。
  • 如果你还在苦苦挣扎,这里是numpy数组的主要统计方法的链接numpy.org/doc/stable/reference/routines.statistics.html

标签: python matrix statistics mean standard-deviation


【解决方案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。

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 2017-06-29
      • 2021-11-02
      • 2020-10-31
      • 2012-02-24
      • 2021-06-15
      • 2012-03-27
      • 1970-01-01
      相关资源
      最近更新 更多