0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 8

Перцентиль, медиана

14.01.2020, 19:49. Показов 11155. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Может кто помочь советом или кодом?

Что нужно?
Написать программу, которая рассчитывает и подает в стандартный вывод следующие значения:
90 перцентиль
медиана

Входные данные:
Данные для расчетов считываются из файла, путь к которому подается в виде аргумента.
Числа в файле целые в пределах от -32 768 до 32 767. Каждое число с новой строки.
В файле не более 1000 строк.
Вывод:
Вывод значений в указанной последовательности, каждое значение заканчивается символом новой строки.
Все значения с точностью до сотых: 2.50 2.00 0.03.
Пример
Входные данные:
5
8
0
0
1
5
5
5
10
6
Вывод:
8.20
5.00
10.00
0.00
4.50
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2020, 19:49
Ответы с готовыми решениями:

Вычислить 90 перцентиль, медиану, максимальное, минимальное и среднее значения
Добрый вечер, только начал немного в python, добрые люди подскажите, хоть примерно, как это делать Считать из файла последовательность...

Медиана
Уважаемые корифеи и знатоки! Медиана В списке нечётное число элементов, при этом все элементы различны. Найдите медиану списка:...

Медиана списка
Дан список целых чисел. Найдите в нем “медианный” элемент, то есть то число, которое будет ровно посередине списка, если список...

9
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.01.2020, 20:08
Медиана:

Python
1
2
3
4
5
6
7
8
9
10
11
12
def mediana(arr):
    n=len(arr)
    s=sorted(arr)
    k=n//2
    if n%2==0:
        return 0.5*(s[k]+s[k-1])
    else:
        return s[k]
        
 
print(mediana([1,2,3,4,5,6]))
print(mediana([1,2,3,4,5]))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
14.01.2020, 20:45
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> file = '''5
8
0
0
1
5
5
5
10
6'''
>>> from io import StringIO  # это вам не надо - в genfromtxt нужно имя файла передать
>>> import numpy as np
>>> a = np.genfromtxt(StringIO(file))
>>> a
array([ 5.,  8.,  0.,  0.,  1.,  5.,  5.,  5., 10.,  6.])
>>> np.percentile(a, 90)
8.2
>>> np.median(a)
5.0
>>> np.percentile(a, 50) # тоже самое что и медиана
5.0
>>>
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
14.01.2020, 23:33
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import random
 
 
def medfinder(n):
    mlist = [random.randint(-10, 10) for i in range(n)]
    print(mlist)
    strlst = sorted(mlist)
    # print(strlst)
    lstlen = len(mlist)
    index = (lstlen - 1) // 2
    if lstlen % 2 == 0:
        res = strlst[index]
        print(res)
        return res
    else:
        res = (strlst[index] + strlst[index + 1]) / 2.0
        print(res)
        return res
 
 
if __name__ == '__main__':
    n = int(input())
    medfinder(n)
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 8
14.01.2020, 23:37  [ТС]
@Garry Galler
Ничего не понял.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
14.01.2020, 23:39
Francev, что тут думать, ежели трясть надо: Вам нужен был пример на медиану, я его дал
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 8
14.01.2020, 23:40  [ТС]
Dax
ваш вариант я ещё разбираю, ответил другому человеку
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
15.01.2020, 00:03
Процентиль
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import random
 
 
def porc(mlist, P):
    mlist = sorted(mlist)
    n = int(round(P * len(mlist) + 0.5))
    return mlist[n - 1]
 
 
if __name__ == '__main__':
    mlist = [random.randint(1, 10) for i in range(10)]
    P = random.uniform(0, 1)
    porc(mlist, P)
    print(porc(mlist, P))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
15.01.2020, 00:50
Цитата Сообщение от Francev Посмотреть сообщение
Ничего не понял.
Это numpy.

P.S. Функция нахождения медианы также есть во встроенном модуле statistics.
Изучайте.

Добавлено через 11 минут
А начиная с Python 3.8 - в модуле statistics есть и квантили\перцентили:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> a= [ 5.,  8.,  0.,  0.,  1.,  5.,  5.,  5., 10.,  6.]
>>> from statistics import quantiles
>>> quantiles(a, n=100)[49]
5.0
>>>
>>> quantiles(a, n=100)[89]
9.8
>>>
>>> quantiles(a, n=100, method="inclusive")[89]  # чтобы перцентиль был как у вас  - нужно указать метод "inclusive"
8.2
>>> # кроме numpy (которую надо знать как 2x2),  перцентили есть и в scipy
>>> import scipy.stats
>>> scipy.stats.scoreatpercentile(a,90)
8.2
0
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 13
11.10.2021, 21:47
Хотел обратиться за помощью с достаточно простым вопросом.
Дали задание посчитать 10й персентиль количества записей, которые создают на одного пользователя.
Есть таблица одна колонка id пользователя вторая id записи.
Посчитал что 18.9% пользователей создают более 1 записи. Создал таблицу в которой один столбец - id пользователя, второй - количество созданных записей.
Считаю 10й персентиль от второй колонки и он получается равным 1, что немного странно, подскажите пожалуйста в чём может быть ошибка и как проверить результат?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2021, 21:47
Помогаю со студенческими работами здесь

Медиана ряда
Маша и Петя любят играть с числами. В этот раз они по очереди применяют к числам задуманные операции, а потом исследуют получившийся...

Медиана числа
Маша и Петя любят играть с числами. В этот раз они по очереди применяют к числам задуманные операции, а потом исследуют получившийся...

Медиана чисел
задание такое: Наш друг Рома, подкрепившись шавермой, участвовал в олимпиаде по математике. В финал проходит ровно половина...

Медиана списка
В списке нечетное число элементов, при этом все элементы различны. Найдите медиану списка: элемент, который стоял бы ровно посередине...

Не выводится медиана из Series Pandas
Не выводится медиана из списка из Series Pandas. Делаю в Google Collab. Код: price_column_series.median() Ошибка: ValueError ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru