Найти - Пользователи
Полная версия: Медиана от определенного числа данных
Начало » Python для новичков » Медиана от определенного числа данных
1
sl0w
Всем привет

Очень хотелось бы понять, как можно взять медиану от определенного количества данных (скажем 300) и протянуть до конца исследуемого массива дюанных.

Смысл такой же как и в скользящем среднем, но только для медианы.

Нпраимер , есть список

 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
мы берем медиану по 3 значениям, тоесть
 1 шаг: [1, 2, 3] и медиана 2 
2 шаг: [ 2, 3, 4] и медиана 3

scidam
pandas.rolling_median, pandas.rolling_mean
sl0w
Хм, а каким образом можно посчитать следующее : если значение
1столбца[I] >  2столбца[I] то значение 3столбца[I+1] = 1 else 0?

Не совсем понимаю моменты со смещением
py.user.next
wiki. медиана (статистика)
Медиа́на (от лат. mediāna — середина) в математической статистике — число, характеризующее выборку (например, набор чисел). Если все элементы выборки различны, то медиана — это такое число выборки, что ровно половина из элементов выборки больше него, а другая половина меньше него. В более общем случае медиану можно найти, упорядочив элементы выборки по возрастанию или убыванию и взяв средний элемент. Например, выборка {11, 9, 3, 5, 5} после упорядочивания превращается в {3, 5, 5, 9, 11} и её медианой является число 5. Если в выборке чётное число элементов, медиана может быть не определена однозначно: для числовых данных чаще всего используют полусумму двух соседних значений (то есть медиану набора {1, 3, 5, 7} принимают равной 4), подробнее см. ниже.
Если у тебя данные в виде (100 100 100 3 2 1 100 100 100), то как бы ты ни ходил по этому массиву, тебе его в любом случае надо сначала весь отсортировать. А если ты его отсортировал, то количество данных в нём известно и он где-то хранится, поэтому можно просто поделить длину массива на два и сразу получить медиану из хранилища. Если же у тебя поступает отсортированный массив неизвестного размера, то ты можешь обновлять медиану на каждом шаге, построив минимальное индуктивное расширение. Но оно не такое, как ты думаешь, потому что сортировать ничего не нужно. Будет браться один следующий элемент массива и сразу будет обновляться текущая медиана. Таким образом к концу перебора всех элементов медиана будет уже получена и не нужно будеть ни делить массив пополам, ни хранить его в памяти.
sl0w
С медианой понятно) благодарствую

Но также хотел бы узнать, как делать сдвиги. Для другой ячейки нужно реализовать алгоритм
code ]1столбца > 2столбца то значение 3столбца = 1 else 0?

Где значения в скобках это индексы.

В общем виде ищу формулу:

Модуль(значения) > медианы (модулей значений)  то столбец [I+1] =1

vic57
непонятно излагаете
 >>> l = [i for i in range(20)]
>>> for i in range(len(l) - 2):
	print(l[i:i+3])
	
[0, 1, 2]
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 10]
[9, 10, 11]
[10, 11, 12]
[11, 12, 13]
[12, 13, 14]
[13, 14, 15]
[14, 15, 16]
[15, 16, 17]
[16, 17, 18]
[17, 18, 19]
>>> 
sl0w
нашел более интересный вариант - просто зашифтить

получается аля
 from pandas import Series 
series= list(range(10))
series.shift(1) 
#а потом можно и переприсвоить аля 
series = series.shift(1)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB