📜  均值,中位数和众数(1)

📅  最后修改于: 2023-12-03 15:37:47.660000             🧑  作者: Mango

均值,中位数和众数

介绍

在统计学中,均值、中位数和众数是用来描述一组数据集中趋势的三种常见参数。它们常常被用来进行数据预处理和分析,并且在机器学习和深度学习中也具有重要的应用。

均值

均值通常指的是算术平均值,即将一组数据所有数值相加,再除以数据总个数。均值是一组数据的中心点,它可以用来表示这组数据的集中程度和分布情况。

中位数

中位数是将一组数据按照大小顺序排列,取出中间的那个数,如果数据集大小为偶数,则取中间两个数的平均值。中位数通常用来表示一组数据的中间位置。

众数

众数是指一组数据中出现次数最多的数值,如果数据集中有多个数值出现的次数相同,则这些数值都是众数。众数可以用来表示数据集的峰值和常见数值。

代码片段
Python
import numpy as np
from scipy import stats

# 计算均值
mean = np.mean([1, 2, 3, 4, 5])
print(f"Mean: {mean}") # 输出:Mean: 3.0

# 计算中位数
median = np.median([1, 2, 3, 4, 5])
print(f"Median: {median}") # 输出:Median: 3.0

# 计算众数
mode = stats.mode([1, 2, 3, 3, 4])
print(f"Mode: {mode.mode}") # 输出:Mode: [3]
Java
import java.util.Arrays;
import java.util.Collections;

public class MeanMedianMode {

    public static void main(String[] args) {

        Integer[] arr = {1, 2, 3, 4, 5};

        // 计算均值
        double mean = Arrays.stream(arr).mapToDouble(i -> i).average().orElse(Double.NaN);
        System.out.printf("Mean: %f\n", mean); // 输出:Mean: 3.000000

        // 计算中位数
        Arrays.sort(arr);
        double median;
        int len = arr.length;
        if (len % 2 == 0) {
            median = (arr[len / 2 - 1] + arr[len / 2]) / 2.0;
        } else {
            median = arr[len / 2];
        }
        System.out.printf("Median: %f\n", median); // 输出:Median: 3.000000

        // 计算众数
        int mode = (int) Collections.max(Arrays.asList(arr), Collections.frequency(arr));
        System.out.printf("Mode: %d\n", mode); // 输出:Mode: 1
    }
}
C++
#include<iostream>
#include<vector>
#include<algorithm>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 计算均值
    double mean = std::accumulate(vec.begin(), vec.end(), 0.0) / vec.size();
    std::cout << "Mean: " << mean << std::endl; // 输出:Mean: 3

    // 计算中位数
    std::sort(vec.begin(), vec.end());
    double median;
    int len = vec.size();
    if (len % 2 == 0) {
        median = (vec[len / 2 - 1] + vec[len / 2]) / 2.0;
    } else {
        median = vec[len / 2];
    }
    std::cout << "Median: " << median << std::endl; // 输出:Median: 3

    // 计算众数
    int mode = *std::max_element(vec.begin(), vec.end(),
            [](int x, int y){return std::count(vec.begin(), vec.end(), x) < std::count(vec.begin(), vec.end(), y);});
    std::cout << "Mode: " << mode << std::endl; // 输出:Mode: 1

    return 0;
}
总结

均值、中位数和众数是十分常见的统计指标,它们可以帮助我们更加全面和准确地了解一组数据的特征和分布情况。程序员们可以使用各种语言和工具来计算这些参数,在实际的应用场景中,也能够发挥重要的作用。