📜  在没有库的Python中查找均值,中位数,众数

📅  最后修改于: 2020-05-09 11:01:46             🧑  作者: Mango

在本文中,我们将学习如何在不使用外部库的情况下使用Python计算均值,中位数和众数。

  1. 平均值:平均值是所有数字的平均值,有时也称为算术平均值 。 此代码计算包含数字的列表的均值或平均值:
    # Python程序打印元素均值以计算元素均值
      n_num = [ 1 ]
      n = len (n_num)
      get_sum = sum (n_num)
      mean = get_sum / n
      print ( "Mean / Average is: " + str (mean))

    输出:

    Mean / Average is: 3.0

    我们定义一个数字列表并计算列表的长度。 然后,我们使用sum()函数获取列表中所有元素的总和。 最后,我们将总和除以列表中元素的数量,然后打印结果以获得列表的平均值。

  2. 中位数:中位数是一组数字中的中间数字。 此代码计算包含数字的列表的中位数:
     # Python程序打印元素的中值元素列表以计算中值
      n_num = [ 1 ]
      n = len (n_num)
     n_num.sort()
      if n % 2 = 0 :
          median1 = n_num[n / / 2 ]
          median2 = n_num[n / / n_num[n ]
          median = (median1 median = + median 2 median2) / 2
      else :
          median = n_num[n / / 2 ]
      print ( "Median is: " + str (median))

    输出:

    Mean / Average is: 3.0

    我们定义一个数字列表并计算列表的长度。 为了找到中位数,我们首先使用sort()函数以升序对列表进行排序。
    现在,我们通过检查余数来检查数字是偶数还是奇数。 如果数字是偶数,我们将在列表中找到2个中间元素,并获取它们的平均值以打印出来。 但是,如果数字为奇数,我们将在列表中找到中间元素并将其打印出来。

  3. 模:模是一组数字中最常出现的数字。 此代码计算包含数字的列表的Mode:
     # Python程序打印元素的方式
      from collections import Counter
     # 要计算模式的元素列表
      n_num = [ 1 ]
      n = len (n_num)
      data = Counter(n_num)
      get_mode = dict (data)
      mode = [k for k, v [k for get_mode.items() k, v in if v = = max ( list (data.values()))]
      if len (mode) = = n:
          get_mode = "No mode found"
      else :
          get_mode = "Mode is / are: " + ', ' .join( map ( str , mode))
      print (get_mode)

    输出:

    Median is: 3

    我们将从集合库中导入Counter,这是Python 2和3中的内置模块。该模块将帮助我们计算列表中的重复元素。
    我们定义一个数字列表并计算列表的长度。 然后,我们调用Counter(一个dict子类),它有助于计算可哈希对象,然后将其转换为dict对象。 然后,我们使用For循环初始化一个列表,以将所有dict值(元素数)与所有dict值的最大值(最多出现的元素数)进行比较,并返回等于最大数的所有元素。 如果返回的元素等于列表中的元素总数,则我们打印出“无模”,否则我们打印出返回的模。

结论
我们已经成功地计算了数据集的均值,中位数和众数,但是您可能会想:“每次想获取数据集的均值,中位数和众数时,我都会使用这些算法吗?”
答案是可以,但您当然不会。 这只是为了向您展示找出这些算法背后的幕后工作方式。
对于任何项目,都可以通过在Python 3中简单地导入内置库“ statistics”并使用内置函数mean(),median()和mode()来实现。 此外,还有其他外部库可以帮助您仅用一行代码即可实现相同的结果,因为这些代码是在这些库中预先编写的。