Как найти среднюю цифру числа в питоне

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    AIn this article, we will see how to find the average of the digits of a number in Python.

    Examples:

    Input: N = 642
    Output: 4.0
    Explanation: (6+4+2)/3 = 12/3 = 4.0
    
    Input: N = 3504
    Output: 3.0
    Explanation: (3+5+0+4)/4 = 12/4 = 3.0

    Calculate the average of a number of digits in python if the number is an integer:

    Follow the below steps to solve the problem:

    • Loop over the digits of the number.
    • Count the total number of digits of the number
    • Calculate the sum of all the digits of the number
    • Calculate and return the number digit average

    Following is an implementation of the above approach: 

    Python3

    def digitAverage(n):

        digiSum, digiLen = 0, 0

        while n:

            digiLen += 1

            digiSum += n % 10

            n = n//10

        return (digiSum/digiLen)

    print(digitAverage(642))

    print(digitAverage(3504))

    Time complexity: O(n)
    Auxiliary Space: O(1)

    Calculate the average of a number of digits in python if the number is a floating-point number:

    In case the input number is a floating point number, we will first convert it into an integer by shifting all the decimal digits by repeatedly multiplying it by 10. 

    To check if a float is equivalent to an integer we can use the is_integer() method of the float class.

    Follow the below steps to solve the problem:

    • First, we will repeatedly  multiply the decimal number by 10  until it becomes an integer
    • Then we can simply follow our previous approach
    • Loop over the digits of the number.
    • Count the total number of digits of the number
    • Calculate the sum of all the digits of the number
    • Calculate and return the number digit average

    Following is an implementation of the above approach: 

    Python3

    def digitAverage(n):

        n = float(n)

        while not n.is_integer():

            n *= 10

        digiSum, digiLen = 0, 0

        while n:

            digiLen += 1

            digiSum += n % 10

            n = n//10

        return (digiSum/digiLen)

    print(digitAverage(642.0))

    print(digitAverage(350.4))

    Time complexity: O(d), d is the number of digits in the given number n.
    Auxiliary space: O(1).

    Last Updated :
    07 Feb, 2023

    Like Article

    Save Article

    Is there a built-in or standard library method in Python to calculate the arithmetic mean (one type of average) of a list of numbers?

    Henry Ecker's user avatar

    Henry Ecker

    34k18 gold badges37 silver badges55 bronze badges

    asked Oct 10, 2011 at 17:19

    jrdioko's user avatar

    3

    I am not aware of anything in the standard library. However, you could use something like:

    def mean(numbers):
        return float(sum(numbers)) / max(len(numbers), 1)
    
    >>> mean([1,2,3,4])
    2.5
    >>> mean([])
    0.0
    

    In numpy, there’s numpy.mean().

    compie's user avatar

    compie

    10.1k15 gold badges54 silver badges77 bronze badges

    answered Oct 10, 2011 at 17:22

    NPE's user avatar

    NPENPE

    483k108 gold badges943 silver badges1008 bronze badges

    7

    NumPy has a numpy.mean which is an arithmetic mean. Usage is as simple as this:

    >>> import numpy
    >>> a = [1, 2, 4]
    >>> numpy.mean(a)
    2.3333333333333335
    

    answered Dec 13, 2012 at 22:12

    Bengt's user avatar

    BengtBengt

    13.9k6 gold badges47 silver badges66 bronze badges

    9

    Use statistics.mean:

    import statistics
    print(statistics.mean([1,2,4])) # 2.3333333333333335
    

    It’s available since Python 3.4. For 3.1-3.3 users, an old version of the module is available on PyPI under the name stats. Just change statistics to stats.

    Boris Verkhovskiy's user avatar

    answered Dec 28, 2013 at 22:38

    kirbyfan64sos's user avatar

    kirbyfan64soskirbyfan64sos

    10.3k6 gold badges54 silver badges75 bronze badges

    4

    You don’t even need numpy or scipy…

    >>> a = [1, 2, 3, 4, 5, 6]
    >>> print(sum(a) / len(a))
    3
    

    Bengt's user avatar

    Bengt

    13.9k6 gold badges47 silver badges66 bronze badges

    answered Aug 17, 2013 at 18:29

    Mumon's user avatar

    MumonMumon

    6315 silver badges2 bronze badges

    6

    Use scipy:

    import scipy;
    a=[1,2,4];
    print(scipy.mean(a));
    

    answered Nov 19, 2012 at 19:11

    Lenka Pitonakova's user avatar

    1

    Instead of casting to float you can do following

    def mean(nums):
        return sum(nums, 0.0) / len(nums)
    

    or using lambda

    mean = lambda nums: sum(nums, 0.0) / len(nums)
    

    UPDATES: 2019-12-15

    Python 3.8 added function fmean to statistics module. Which is faster and always returns float.

    Convert data to floats and compute the arithmetic mean.

    This runs faster than the mean() function and it always returns a
    float. The data may be a sequence or iterable. If the input dataset is
    empty, raises a StatisticsError.

    fmean([3.5, 4.0, 5.25])

    4.25

    New in version 3.8.

    answered Apr 28, 2017 at 10:56

    Vlad Bezden's user avatar

    Vlad BezdenVlad Bezden

    82k24 gold badges246 silver badges179 bronze badges

    from statistics import mean
    avarage=mean(your_list)
    

    for example

    from statistics import mean
    
    my_list=[5,2,3,2]
    avarage=mean(my_list)
    print(avarage)
    

    and result is

    3.0
    

    answered Oct 2, 2018 at 16:56

    fariborz najafi's user avatar

    If you’re using python >= 3.8, you can use the fmean function introduced in the statistics module which is part of the standard library:

    >>> from statistics import fmean
    >>> fmean([0, 1, 2, 3])
    1.5
    

    It’s faster than the statistics.mean function, but it converts its data points to float beforehand, so it can be less accurate in some specific cases.

    You can see its implementation here

    answered Dec 30, 2020 at 22:20

    Mathieu Rollet's user avatar

    Mathieu RolletMathieu Rollet

    1,9272 gold badges17 silver badges27 bronze badges

    def avg(l):
        """uses floating-point division."""
        return sum(l) / float(len(l))
    

    Examples:

    l1 = [3,5,14,2,5,36,4,3]
    l2 = [0,0,0]
    
    print(avg(l1)) # 9.0
    print(avg(l2)) # 0.0
    

    answered Sep 10, 2017 at 20:29

    jasonleonhard's user avatar

    def list_mean(nums):
        sumof = 0
        num_of = len(nums)
        mean = 0
        for i in nums:
            sumof += i
        mean = sumof / num_of
        return float(mean)
    

    answered Aug 18, 2016 at 15:09

    Muhoza yves's user avatar

    0

    The proper answer to your question is to use statistics.mean. But for fun, here is a version of mean that does not use the len() function, so it (like statistics.mean) can be used on generators, which do not support len():

    from functools import reduce
    from operator import truediv
    def ave(seq):
        return truediv(*reduce(lambda a, b: (a[0] + b[1], b[0]), 
                               enumerate(seq, start=1), 
                               (0, 0)))
    

    answered Aug 28, 2018 at 1:30

    PaulMcG's user avatar

    PaulMcGPaulMcG

    62k16 gold badges93 silver badges130 bronze badges

    I always supposed avg is omitted from the builtins/stdlib because it is as simple as

    sum(L)/len(L) # L is some list
    

    and any caveats would be addressed in caller code for local usage already.

    Notable caveats:

    1. non-float result: in python2, 9/4 is 2. to resolve, use float(sum(L))/len(L) or from __future__ import division

    2. division by zero: the list may be empty. to resolve:

      if not L:
          raise WhateverYouWantError("foo")
      avg = float(sum(L))/len(L)
      

    answered Nov 2, 2015 at 11:03

    n611x007's user avatar

    n611x007n611x007

    8,9307 gold badges59 silver badges101 bronze badges

    Others already posted very good answers, but some people might still be looking for a classic way to find Mean(avg), so here I post this (code tested in Python 3.6):

    def meanmanual(listt):
    
    mean = 0
    lsum = 0
    lenoflist = len(listt)
    
    for i in listt:
        lsum += i
    
    mean = lsum / lenoflist
    return float(mean)
    
    a = [1, 2, 3, 4, 5, 6]
    meanmanual(a)
    
    Answer: 3.5
    

    answered Sep 11, 2017 at 1:53

    Hashmatullah Noorzai's user avatar

    В этой статье мы рассмотрим различные способы найти среднее значение списка в списке Python. Среднее значение – это значение, которое представляет весь набор элементов данных или элементов.

    Формула: Среднее значение = сумма чисел / общее количество.

    Содержание

    1. Методы поиска среднего значения списка
    2. Функция mean()
    3. Использование функции sum()
    4. 3. Использование reduce() и lambda()
    5. Функция operator.add() для поиска среднего значения списка
    6. Метод NumPy average() для вычисления среднего значения списка

    Методы поиска среднего значения списка

    Для вычисления среднего значения списка в Python можно использовать любой из следующих методов:

    • Функция mean();
    • Встроенный метод sum();
    • Методы lambda() и reduce();
    • Метод operator.add().

    Функция mean()

    Python 3 имеет модуль статистики, который содержит встроенную функцию для вычисления среднего числа. Функция statistics.mean() используется для вычисления среднего входного значения или набора данных.

    Функция mean() принимает список, кортеж или набор данных, содержащий числовые значения, в качестве параметра и возвращает среднее значение элементов данных.

    Синтаксис:

    mean(data-set/input-values)
    

    Пример:

    from statistics import mean 
    
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88] 
    list_avg = mean(inp_lst) 
    
    print("Average value of the list:n") 
    print(list_avg) 
    print("Average value of the list with precision upto 3 decimal value:n")
    print(round(list_avg,3))
    
    

    В приведенном выше фрагменте кода мы использовали метод statistics.round() для округления выходного среднего до определенного десятичного значения.

    Синтаксис:

    statistics.round(value, precision value)
    

    Вывод:

    Average value of the list:
    
    67.51375
    Average value of the list with precision upto 3 decimal value:
    
    67.514
    

    Использование функции sum()

    Функция statistics.sum() также может использоваться для поиска среднего значения данных в списке Python.

    Функция statistics.len() используется для вычисления длины списка, т.е. количества элементов данных, присутствующих в списке.

    Синтаксис:

    len(input-list)
    

    Кроме того, функция statistics.sum() используется для вычисления суммы всех элементов данных в списке.

    Синтаксис:

    sum(input-list)
    

    Примечание: среднее значение = (сумма) / (количество).

    Пример:

    from statistics import mean 
    
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]
    
    sum_lst = sum(inp_lst)
    
    lst_avg = sum_lst/len(inp_lst)
    print("Average value of the list:n") 
    print(lst_avg) 
    print("Average value of the list with precision upto 3 decimal value:n")
    print(round(lst_avg,3))
    

    Вывод:

    Average value of the list:
    
    67.51375
    Average value of the list with precision upto 3 decimal value:
    
    67.514
    
    

    3. Использование reduce() и lambda()

    Мы можем использовать функцию reduce() вместе с функцией lambda().

    Функция reduce() в основном используется для применения определенной (входной) функции к набору элементов, переданных в функцию.

    Синтаксис:

    reduce(function,input-list/sequence)
    
    • Первоначально функция reduce() применяет переданную функцию к первым двум последовательным элементам и возвращает результат.
    • Далее мы применяем ту же функцию к результату, полученному на предыдущем шаге, и к элементу, следующему за вторым элементом.
    • Этот процесс продолжается, пока не дойдет до конца списка.
    • Наконец, результат возвращается на терминал или экран в качестве вывода.

    Функция lambda() используется для создания и формирования анонимных функций, то есть функции без имени или подписи.

    Синтаксис:

    lambda arguments:function
    

    Пример:

    from functools import reduce 
    
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]
    
    lst_len= len(inp_lst)
    
    lst_avg = reduce(lambda x, y: x + y, inp_lst) /lst_len 
    print("Average value of the list:n") 
    print(lst_avg) 
    print("Average value of the list with precision upto 3 decimal value:n")
    print(round(lst_avg,3))
    
    

    Вывод:

    Average value of the list:
    
    67.51375
    Average value of the list with precision upto 3 decimal value:
    
    67.514
    
    

    Функция operator.add() для поиска среднего значения списка

    Модуль operator.add() содержит различные функции для эффективного выполнения основных вычислений и операций.

    Функцию operator.add() можно использовать для вычисления суммы всех значений данных, присутствующих в списке, с помощью функции reduce().

    Синтаксис:

    operator.add(value1, value2)
    

    Примечание: среднее значение = (сумма) / (длина или количество элементов)

    Пример:

    from functools import reduce 
    import operator
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]
    
    lst_len = len(inp_lst)
    
    lst_avg = reduce(operator.add, inp_lst) /lst_len 
    print("Average value of the list:n") 
    print(lst_avg) 
    print("Average value of the list with precision upto 3 decimal value:n")
    print(round(lst_avg,3))
    

    Вывод:

    Average value of the list:
    
    67.51375
    Average value of the list with precision upto 3 decimal value:
    
    67.514
    

    Метод NumPy average() для вычисления среднего значения списка

    Модуль NumPy имеет встроенную функцию для вычисления среднего значения элементов данных, присутствующих в наборе данных или списке.

    Метод numpy.average() используется для вычисления среднего значения входного списка.

    Пример:

    import numpy
    
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]
    
    lst_avg = numpy.average(inp_lst)
    print("Average value of the list:n") 
    print(lst_avg) 
    print("Average value of the list with precision upto 3 decimal value:n")
    print(round(lst_avg,3))
    
    

    Вывод:

    Average value of the list:
    
    67.51375
    Average value of the list with precision upto 3 decimal value:
    
    67.514
    

    1. Используйте математическую формулу для вычисления среднего арифметического в Python
    2. Используйте функцию numpy.mean() для вычисления среднего арифметического в Python
    3. Используйте функцию statistics.mean() для вычисления среднего арифметического в Python
    4. Используйте функцию scipy.mean() для вычисления среднего арифметического в Python

    Вычислить среднее арифметическое в Python

    Термин среднее арифметическое – это среднее арифметическое чисел. Математическая формула для определения среднего арифметического заключается в делении суммы чисел на количество. В Python это определяется следующими способами.

    • Используйте математическую формулу.
    • Используйте функцию mean () из стандартных библиотек Python, таких как NumPy, statistics, scipy.

    Используйте математическую формулу для вычисления среднего арифметического в Python

    Следуйте этой программе, чтобы использовать математическую формулу.

    listnumbers=[1,2,4];
    print("The mean is =",sum(listnumbers) / len(listnumbers));
    

    Выход:

    The mean is = 2.3333333333333335
    

    Используйте функцию numpy.mean() для вычисления среднего арифметического в Python

    Стандартная библиотека NumPy содержит функцию mean(), используемую для определения среднего арифметического в Python. Для этого сначала импортируйте библиотеку NumPy. См. Пример ниже.

    import numpy
    listnumbers = [1, 2, 4]
    print ("The mean is =",numpy.mean(listnumbers))
    

    Выход:

    The mean is = 2.3333333333333335
    

    Используйте функцию statistics.mean() для вычисления среднего арифметического в Python

    Библиотека statistics содержит функцию mean(), используемую для определения среднего арифметического. Для этого сначала импортируйте библиотеку statistics. Следуйте приведенному ниже примеру.

    import statistics
    listnumbers = [1, 2, 4]
    print("The mean is =",statistics.mean(listnumbers))
    

    Выход:

    The mean is = 2.3333333333333335
    

    Используйте функцию scipy.mean() для вычисления среднего арифметического в Python

    Библиотека scipy содержит функцию mean(), используемую для определения среднего значения. Для этого сначала импортируйте scipy библиотеку. Вот пример.

    import scipy;
    listnumbers=[1,2,4];
    print("The mean is =",scipy.mean(listnumbers));
    

    Выход:

    The mean is = 2.3333333333333335
    

    Для обработки любых данных в Python приходится выполнять множество математических вычислений. В этой статье рассмотрим различные способы вычисления среднего значения заданных чисел.

    Как рассчитать среднее значение заданных чисел

    Среднее значение заданных чисел – это сумма всех чисел, делёная на общее количество чисел.

    Например, если нам даны числа 1, 2, 4, 5, 6, 7, 8, 10, и 12, то сумма всех заданных чисел равна 55, а их общее количество равно 9. Таким образом, среднее значение всех чисел будет равно 55/9, т.е. 6,111 .

    Вычисляем среднее значение, используя цикл for

    Если нам дан список чисел, мы можем вычислить среднее значение с помощью цикла for. Сначала объявим переменную sumofNums и переменную count и дадим им значение 0. Затем пройдемся по каждому элементу списка. Будем добавлять каждый элемент в переменную sumofNums. В это время будем увеличивать переменную count на 1. После обхода всего списка у нас будет сумма всех элементов списка в переменной sumofNums и общее количество элементов в переменной count. Теперь можно разделить сумму чисел на количество, чтобы получить среднее значение элементов списка:

    numbers = [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    sumOfNums = 0
    count = 0
    for number in numbers:
        sumOfNums += number
        count += 1
    average = sumOfNums / count
    print("The list of numbers is:", numbers)
    print("The average of all the numbers is:", average)

    Вывод:

    The list of numbers is: [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    The average of all the numbers is: 19.53846153846154

    Рассчитываем среднее значение с помощью встроенных функций

    Вместо цикла for можно использовать встроенные функции.

    Можно вычислить сумму всех элементов списка с помощью метода sum(), а затем мы можем вычислить общее количество элементов в списке с помощью метода len(). Таким образом, у нас будет сумма чисел и общее количество чисел, с помощью которых мы сможем рассчитать среднее значение:

    numbers = [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    sumOfNums = sum(numbers)
    count = len(numbers)
    average = sumOfNums / count
    print("The list of numbers is:", numbers)
    print("The average of all the numbers is:", average)

    Вывод:

    The list of numbers is: [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    The average of all the numbers is: 19.53846153846154

    Также можно использовать метод mean() модуля статистики для прямого вычисления среднего значения элементов списка. Мы передадим данный список чисел в качестве входных данных методу mean(), и он вернёт среднее значение чисел:

    import statistics
    numbers = [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    average = statistics.mean(numbers)
    print("The list of numbers is:", numbers)
    print("The average of all the numbers is:", average)

    Вывод:

    The list of numbers is: [1, 2, 34, 56, 7, 23, 23, 12, 1, 2, 3, 34, 56]
    The average of all the numbers is: 19.53846153846154

    Заключение

    В этой статье мы обсудили различные способы вычисления среднего значения заданных чисел в Python.

    Просмотры: 6 395

    Добавить комментарий