Вопросы с тегами [median]

4

голосов
3

ответ
188

Просмотры

как найти медиану вектора, если метод Const?

Я создал метод, называемый Collect, который добавляет кучу значений вектора (как показано ниже) аннулируется Median :: Collect (двойной ИГД) {myVector.push_back (геодезический); } Мне нужно создать метод, который вычисляет медиану всех значений I, собранных в векторе в указанном выше способе. Определение функции написано ниже / * Вычисляет медиану данных (нулевые точки) из метода Collect. * / Двойной Медиана :: Вычислить () сопзЬ {} Так что я знаю, что я в первую очередь необходимо отсортировать вектор для того, чтобы найти медиану. Ниже моя попытка: двойная Медиана :: Вычислить () сопзЬ {станд :: сортировки (myVector.begin (), myVector.end ()); двойная медиана; если (myVector.size ()% 2 == 0) {// даже средний = (myVector [myVector.size () / 2 - 1] + myVector [myVector.size () / 2]) / 2; } Еще {// нечетное средний = myVector [myVector.size () / 2]; } Вернуть медиану; } Но я понял, что это не компиляции, так как метод сопзИте, поэтому сортировку значений вектора изменит вектор, который не допускается в константной функции. Так что я должен делать для этого метода?
Sarah
1

голосов
0

ответ
153

Просмотры

Медиана и процентили агрегации сетки Kibana geohash

У меня есть индекс, составленный на широчайшей, длинной, стране, значение, которое я хочу, чтобы построить как в карте области и отображение координат. Я хочу, чтобы для каждого ведра (области или сетки плитки) медианы или другой процентиля, например 75%, но только метрика агрегация, что я могу видеть из Kibana средние, граф, Sum, Max, ... но не то, что я ищу. Как вы думаете, я могу добиться этого? Заранее спасибо.
1

голосов
0

ответ
72

Просмотры

Median over time - SQL Server

I have data (support ticket statistics, to be exact), that I am trying to get the median of, over time. Right now, I have a query that calculates the difference between the date the ticket was opened and the date it was closed. I take that data and pivot the average of the days to close over a series of months and years, using SQL Servers built in AVG function. This works well, however I am finding that the metrics are skewed due to outliers in the data. What I really want, is the Median of the data, pivoted over months and years. I am having trouble achieving what I am after, and I am not positive if this is even possible. The query I have right now, using the AVG function, is: SELECT 'Support - Days To Close Escalation', * FROM ( SELECT DATEDIFF(HOUR, e.CreatedDate, e.Escalation_Close_Date_Time__c) AS DaysToCloseEscalation, LEFT(CONVERT(CHAR(10), e.CreatedDate,126), 7) AS EscalationCreateDate FROM [dbo].[Escalations] AS e WITH(NOLOCK) LEFT JOIN [dbo].[Case] AS c WITH(NOLOCK) ON e.Case__c = c.Id WHERE e.Escalation_Queue__c IN ('PM 10 Tier 2 Support', 'PM 11 Tier 2 Support') AND e.CreatedDate BETWEEN '2017-04-01 00:00:00.000' AND '2018-04-01 00:00:00.000' AND e.Escalation_Close_Date_Time__c IS NOT NULL ) AS SupportEscalationVolume PIVOT ( AVG(SupportEscalationVolume.DaysToCloseEscalation) FOR SupportEscalationVolume.EscalationCreateDate IN ([2017-04],[2017-05],[2017-06],[2017-07],[2017-08],[2017-09],[2017-10],[2017-11],[2017-12],[2018-01],[2018-02],[2018-03]) ) AS SupportEscalationVolumePivot The result of this query is something along the lines of (except all in a single row, since the data is pivoted): StatDescription | Support - Days To Close Escalation ---------------------------------------------------- 2017-04 | 107 2017-05 | 52 2017-06 | 101 2017-07 | 106 2017-08 | 69 2017-09 | 54 2017-10 | 49 2017-11 | 42 2017-12 | 51 2018-01 | 31 2018-02 | 23 2018-03 | 15 After some research on how to pull of a Median in SQL, I have resorted to using DENSE_RANK(), as shown in the query below. I started with ROW_NUMBER(), but that gave me a counter for ALL records, where what I really want is a median of the time to close the ticket for each month/year grouping. ; WITH SupportDaysToClose(HoursToCloseEscalation, EscalationCreateDate, RowNumber) AS ( SELECT DATEDIFF(HOUR, e.CreatedDate, e.Escalation_Close_Date_Time__c) AS HoursToCloseEscalation, LEFT(CONVERT(CHAR(10), e.CreatedDate,126), 7) AS EscalationCreateDate, DENSE_RANK() OVER(ORDER BY LEFT(CONVERT(CHAR(10), e.CreatedDate,126), 7) ASC) AS RowNumber FROM [dbo].[Escalations] AS e WITH(NOLOCK) LEFT JOIN [dbo].[Case] AS c WITH(NOLOCK) ON e.Case__c = c.Id WHERE e.Escalation_Queue__c IN ('PM 10 Tier 2 Support', 'PM 11 Tier 2 Support') AND e.CreatedDate BETWEEN '2017-04-01 00:00:00.000' AND '2018-04-01 00:00:00.000' AND e.Escalation_Close_Date_Time__c IS NOT NULL ) SELECT * FROM SupportDaysToClose ORDER BY RowNumber,HoursToCloseEscalation A sample of this data looks like HoursToClose|CreateDate|RowNumber --------------------------------- 0 |2017-04 |1 7 |2017-08 |5 27 |2017-12 |9 Each RowNumber correlates to a given month and year, the maximum being at 12. At this point, I am not really sure where to go. Has anyone ever done anything like this before? I am not sure if I am on the right track or if I need to rethink the whole strategy. I apologize in advance if the syntax is difficult to follow.
Tony Fitzhugh
1

голосов
1

ответ
42

Просмотры

Нарисуйте срединные линии на соответствующей высоте на увернулся dotplot в ggplot2

Я измерил данное поведение у животных (самцов и самок) различных репродуктивных состояний (от девственной к родителю). Я рисую dotplot с увернулся точками, и я хотел бы добавить средний бар для каждой подгруппы. Я уже задавал подобный вопрос, и мне сказали, чтобы использовать stat_summary с геой = «точкой», чтобы добавить средний бар (см примера код ниже). Моя проблема заключается в том, что бар кажется хаотично расположены вокруг реального медианного значения, вместо того, чтобы быть точно расположен на средней величины (см график ниже) # Пробный dataframe: Пол
Mehdi.K
1

голосов
1

ответ
340

Просмотры

Taking median of calculation in SQL Server

MyTable в SQL Server содержит _timestamp, Column1, Столбец2 и Столбец3, которые имеют следующие значения: _timestamp column1 Столбец2 Столбец3 '2010-10-11 15: 55: 25.40' 10 3 0.5 «2010-10-11 15: 55: 25.50 '20 9 0,7 '2010-10-11 15: 55: 25.60' 15 2 1.3 '2010-10-11 15: 55: 25.70' 17 8 2,7 '2010-10-11 15: 55: 25.80' 42 6 3,6' 2010-10-11 15: 55: 25.90' 14 2 0,4 Я хотел бы найти среднее значение из 4 * Столбец1 * Столбец2 * Столбец3. Продукты для каждого ряда: 60 ​​504 156 1468,8 3628,8 44,8 Поскольку существует четное число записей, среднее значение представляет собой среднее из двух «средних» записей (156 и 504), или 330. Кроме того, я только хочу, чтобы выполнить медианный на значениях, которые находятся в пределах выбранного диапазона времени, и раствор может» т изменить базу данных, которая не принадлежит мне. Я редактировал подобный запрос, чтобы получить запрос, показанный ниже, но это не удается, так как имя столбца является недействительным. Какие-либо предложения? ВЫБРАТЬ AVG (4 * Столбец1 * Столбец2 * Столбец3) ОТ (SELECT 4 * Столбец1 * Столбец2 * Столбец3, ROW_NUMBER () OVER (ORDER BY 4 * Столбец1 * Столбец2 * Столбец3 ASC, _timestamp ASC) А.С. RowAsc, ROW_NUMBER () OVER (ORDER на 4 * Столбец1 * Столбец2 * Столбец3 DESC, _timestamp по убыванию) КАК RowDesc ОТ MyTable ГДЕ _timestamp МЕЖДУ '2010-10-11 15: 55: 25,40' и '2010-10-11 15: 55: 25.90') х ГДЕ RowAsc В (RowDesc, RowDesc - 1, RowDesc + 1) Какие-либо предложения? ВЫБРАТЬ AVG (4 * Столбец1 * Столбец2 * Столбец3) ОТ (SELECT 4 * Столбец1 * Столбец2 * Столбец3, ROW_NUMBER () OVER (ORDER BY 4 * Столбец1 * Столбец2 * Столбец3 ASC, _timestamp ASC) А.С. RowAsc, ROW_NUMBER () OVER (ORDER на 4 * Столбец1 * Столбец2 * Столбец3 DESC, _timestamp по убыванию) КАК RowDesc ОТ MyTable ГДЕ _timestamp МЕЖДУ '2010-10-11 15: 55: 25,40' и '2010-10-11 15: 55: 25.90') х ГДЕ RowAsc В (RowDesc, RowDesc - 1, RowDesc + 1) Какие-либо предложения? ВЫБРАТЬ AVG (4 * Столбец1 * Столбец2 * Столбец3) ОТ (SELECT 4 * Столбец1 * Столбец2 * Столбец3, ROW_NUMBER () OVER (ORDER BY 4 * Столбец1 * Столбец2 * Столбец3 ASC, _timestamp ASC) А.С. RowAsc, ROW_NUMBER () OVER (ORDER на 4 * Столбец1 * Столбец2 * Столбец3 DESC, _timestamp по убыванию) КАК RowDesc ОТ MyTable ГДЕ _timestamp МЕЖДУ '2010-10-11 15: 55: 25,40' и '2010-10-11 15: 55: 25.90') х ГДЕ RowAsc В (RowDesc, RowDesc - 1, RowDesc + 1)
KAE
1

голосов
1

ответ
423

Просмотры

Нужна помощь выяснить, C ++ сегмент кода в реализации кД дерева

У меня возникли проблемы выяснить, что сегмент кода ниже делает. Он взят из книги Synthesis реалистичное изображение Использование Photon Mapping Хенрик Wann Дженсена. Я думаю, что он пытается сделать (или то, что я думаю, что это должно быть пытается сделать с учетом его места в коде) является вычислить средний индекс в массиве между некоторым начальным и конечным индексом. // входы массив, начальные и конечные индексы, которые определяют подмножество массива Int медианы = 1; в то время как ((4 * медиана)
martega
1

голосов
1

ответ
1.1k

Просмотры

CUDA Медиана-фильтр не работает должным образом

Я взял на себя, чтобы узнать CUDA, и пытался реализовать простой медианный фильтр для обработки изображений. Это то, что я придумал, но я не могу показаться, чтобы получить какие-либо хорошие результаты с изображениями, которые выходят из него. Например, выводимое изображение относительно бесшумное, но насыщенность изображения кажется выше, и когда я попробовал эту картину плюшевого мишки из Википедии, его нос становится зеленым по какому-тому причиню. Я стал слишком расстроен, чтобы думать о каких-либо новых идей, так что если кто-то может увидеть проблему в коде, я бы очень благодарны. Спасибо! Это функция ядра: __global__ недействительными median_filter (интермедиат * вход, выход INT *, Int IMAGE_W, Int IMAGE_H) {__shared__ плавать окно [BLOCK_W * BLOCK_H] [9]; ИНТ х, у, TID; Int I, J, IMIN, темп; х = blockIdx.x * blockDim.x + threadIdx.x; у = blockIdx.y * blockDim.y + threadIdx.y; TID = threadIdx.y * blockDim.y + threadIdx.x; если (х> = IMAGE_W && у> = IMAGE_H) возвращение; / * Установка окна 3x3 элементов для медианы * / если (у == 0 && х == 0) окно [TID] [0] = вход [у * IMAGE_W + X]; иначе, если (у == 0 && х = 0!) окно [TID] [0] = вход [у * IMAGE_W + X-1]; (! У = 0 0 && х ==) еще, если окно [TID] [0] = вход [(у-1) * IMAGE_W + X]; другое окно [TID] [0] = вход [(у-1) * IMAGE_W + X-1]; ? Окно [TID] [1] = (у == 0) вход [у * IMAGE_W + X]: вход [(у-1) * IMAGE_W + X]; если (у == 0 && х == IMAGE_W-1) окно [TID] [2] = вход [у * IMAGE_W + X]; иначе, если (у = 0 && х == IMAGE_W-1!) окно [TID] [2] = вход [(у-1) * IMAGE_W + X]; иначе, если (у == 0 && х = IMAGE_W-1!) окно [TID] [2] = вход [(у-1) * IMAGE_W + х + 1]; другое окно [TID] [2] = вход [(у-1) * IMAGE_W + х + 1]; ? Окно [TID] [3] = (х == 0) вход [у * IMAGE_W + X]: вход [у * IMAGE_W + X-1]; Окно [TID] [4] = вход [у * IMAGE_W + X]; ? Окно [TID] [5] = (х == IMAGE_W-1) вход [у * IMAGE_W + X]: вход [у * IMAGE_W + х + 1]; если (у == IMAGE_H-1 && х == 0) окно [TID] [6] = вход [у * IMAGE_W + X]; иначе, если (у = IMAGE_H-1 && х == 0!) окно [TID] [6] = вход [(у + 1) * IMAGE_W + X]; иначе, если (у == IMAGE_H-1 && х = 0!) окно [TID] [6] = вход [у * IMAGE_W + X-1]; другое окно [TID] [6] = вход [(у + 1) * IMAGE_W + X-1]; ? Окно [TID] [7] = (у == IMAGE_H-1) вход [у * IMAGE_W + X]: вход [(у + 1) * IMAGE_W + X]; если (у == IMAGE_H-1 && х == IMAGE_W-1) окно [TID] [8] = вход [у * IMAGE_W + X]; иначе, если окно [TID] [8] = вход [(у + 1) * IMAGE_W + X] (у = IMAGE_H-1 && х == IMAGE_W-1!); иначе если (у == IMAGE_H-1 && х! = IMAGE_W-1) окно [TID] [8] = вход [у * IMAGE_W + х + 1]; другое окно [TID] [8] = вход [(у + 1) * IMAGE_W + х + 1]; __syncthreads (); / * Окно сортировки, чтобы найти медиану * / для (J = 0; J (deviceInputGreen, deviceOutputGreen, imgHeight, imgWidth); checkCUDAError ( "ядро вызова г"); median_filter> (deviceInputBlue, deviceOutputBlue, imgHeight, imgWidth); checkCUDAError (» ядро вызова б "); cudaMemcpy (imgeRedChannel_x, deviceOutputRd, imgHeight * imgWidth * SizeOf (INT), cudaMemcpyDeviceToHost); checkCUDAError (" тетсру дк г "); cudaMemcpy (imgeGreenChannel_x, deviceOutputGreen, imgHeight * imgWidth * SizeOf (INT), cudaMemcpyDeviceToHost) ; checkCUDAError ( "тетсру дк г"); cudaMemcpy (imgeBlueChannel_x, deviceOutputBlue, imgHeight * imgWidth * SizeOf (INT), cudaMemcpyDeviceToHost); checkCUDAError ( "тетср дк б"); cudaFree (deviceInputRed); cudaFree (deviceOutputRd); cudaFree (deviceInputGreen); cudaFree (deviceOutputGreen); cudaFree (deviceInputBlue); cudaFree (deviceOutputBlue); / * Сохранение нового изображения * / fclose (изображение); символ заголовок [50] = "после"; strcat (название, ".bmp"); удалить (название); изображение = Еореп (название, "термометр"); FWRITE (& bmpFHeader, SizeOf (BITMAPFILEHEADER), 1, изображение); FWRITE (& bmpIHeader, SizeOf (BITMAPINFOHEADER), 1, изображение); для (INT I = imgHeight-1; я> = 0; i--) {для (Int J = 0; J255) б = 255; если (г> 255) г = 255; если (г> 255) г = 255; FWRITE (& г, SizeOf (символ без знака), 1, изображение); FWRITE (& Ь, SizeOf (символ без знака), 1, изображение); FWRITE (& г, SizeOf (символ без знака), 1, изображение); }} Е ( "Успех! \ П"); fclose (изображение); Система ( "пауза"); возвращать 0; }
musasabi
1

голосов
2

ответ
319

Просмотры

Эффективное медиана вычисление

У меня есть массив, A, длины п. Пусть В массиве (который мы никогда не хотим хранить отдельно - это просто, чтобы помочь объяснить), содержащую каждый k-й элемент А. Я хочу найти медиану B, и я хочу, чтобы переместить этот элемент из А в этаж (п / 2) -й позиции в А. Как я могу сделать это эффективно? Я имею в виду, чтобы пытаться сделать один вызов STD :: nth_element, передавая указатель на A. Однако, мне нужен этот указатель увеличивается на к элементов А. Как сделать это? По существу: А2 = (kFloat *) А; станд :: nth_element (А2, А2 + (п / к) / 2, A2 + (п / к)); подкачки (А [((п / к) / 2) * K], А [п / 2]); // Это может быть излишним, где kFloat бы структуру, которая действует как поплавок, но когда вы увеличиваете указатель перемещается к * SizeOf (с плавающей точкой) в памяти. Примечание: Я не требую истинной медианы (в среднем средних два, когда п четно). Редактировать: Еще один способ сказать, что я хочу (не компилируется, поскольку к не является постоянной): станд :: nth_element ((поплавок [к] *) А, ((поплавок [к] *) A) [(п / к ) / 2], ((поплавок [к] *) А) [п / к]); Изменить 2: Я меняю algorithm.cc, так что я не хочу, чтобы ввести зависимость от библиотеки как Boost. Я хотел бы использовать ядро ​​C ++ 11 + функциональности зОй только.
PThomasCS
1

голосов
3

ответ
62

Просмотры

Java find two median in a substring

new to java here and I have a nooby question. I was recently given this txt file: Albuquerque, New Mexico, 5352 feet, 202.3° Denver, Colorado, 5280 feet, 202.4° Minneapolis, Minnesota, 841 feet, 210.5° Birmingham, Alabama, 644 feet, 210.8° Detroit, Michigan, 639 feet, 210.8° Miami, Florida, 11 feet, 211.9° Burj Khalifa, Dubai, 2717 feet, 207.1° CN Tower, Toronto, 1815 feet, 208.7° and was ask to find and printout the two median number. Problem is I keep getting error when I try to use Arrays.sort(). public static void main(String[] args) { File mf = new File("C:\\file.txt"); ArrayList inData = new ArrayList(); String strline; try { FileInputStream fstream = new FileInputStream(mf); BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); while ((strline = br.readLine()) != null) { strline = strline.trim(); if ((strline.length() != 0)) { inData.add(strline); } } br.close(); } catch (Exception e) { System.err.println("Error CANNOT FIND FILE!"); } //Calc median start double median; for (int i = 0; i < inData.size(); i++) { String[] word = inData.get(i).split(", "); double m = Double.parseDouble(word[3].substring(0, 5)); Arrays.sort(m); if (m.length % 2 == 0) { double middleNumOne = m[m.length / 2 - 0.5] double middleNumTwo = m[m.length / 2 + 0.5] System.out.println("Median:" + middleNumOne + "and" + middleNumTwo); } } } this is what i have so far. Can someone please help me, and tell me what am I missing?
duhNooby
1

голосов
2

ответ
400

Просмотры

написание медианный функции

Я пытаюсь написать функцию медианы, в настоящее время у меня есть тот, который принимает список и сортирует его, а затем дает медиану. но я пытаюсь переписать его так, что если список содержит четное число элементов оно не печатать медиану, а скорее 2 номера из списка, что медиана находится между ними. Heres мой код четкости getMedian (A): = отсортированный (А) п = Len (А) т = п-1 возврата (А [Int (п / 2)] + A [INT (м / 2)]) / 2 защиту главное (): MyList = [3,5,9,3,11] печать (getMedian (MyList)) MyList = [3,9,11,5] печать (getMedian (MyList)) основные () в данный момент она выводит 5 а затем 7, но им пытаются получить его к выходу 5, а затем 5,9 любые советы?
Noah Dukehart
1

голосов
1

ответ
756

Просмотры

Перемещение медианы в MATLAB до R2016a

В MATLAB R2016a функция movmedian была введена, но у меня есть более старая версия. Кто-нибудь знает, как сделать что-то подобное тому, что делает эту функцию без использования циклов? Мне нужно вызвать эту функцию много раз и скорость важна. По существу, у меня есть 1000 × 1 вектор X и я хочу другого вектора, где каждый элемент равен Y (I) = медиана (Х ((I-50) :( г + 50))). Если я использовать цикл, можно сделать следующее: X = RAND (1000,1); Y = нули (1000,1); для я = 1: 1000, если я> = 51 старт = я-50; то начать = 1; конец, если я
Floren
1

голосов
1

ответ
30

Просмотры

Ошибка из rollingmedian с использованием колонок

У меня есть dataframe, для которого я пытаюсь добавить дополнительный столбец вычисления медианы тока и 2 предыдущих значений. Дата Значение 21/07/2016 14,8 22/07/2016 14,9 23/07/2016 15,8 24/07/2016 15,0 25/07/2016 15,7 26/07/2016 15,6 27/07/2016 16,1 28/07/2016 16,1 Я использовал следующий код: библиотека (зоопарк) dataframe $ medianval Ошибка: к
carlosmaria
1

голосов
1

ответ
52

Просмотры

с помощью оператора выбора, чтобы найти индекс и вернуть его

После игры около с этим все утро (я еще новичок в этом), я решил спросить экспертов. Это задание: Вы собираетесь дать слово. Ваша задача вернуть средний символ слова. Если длина этого слова является нечетной, возвращают средний характер. Если длина этого слова является даже возвращать средние 2 символов. Это то, что я до сих пор: Защита медиана (строка) массив = String.split (//) случай, когда массив array.length == 1 возврат массив [0], когда array.length == 2 возвращение массив [0] + массив [1], когда array.length.odd? && array.length> = 3 Возвращение массива [(array.length - 1) / 2], когда array.length.even? && array.length> = 4 Возвращение массива [((массив. длина / 2) - 1)] + массив [(array.length / 2)] еще нулевой конец конец ставит медиану ( "тестирование"), что случилось с моим кодом. Она работает, но не доставляет ничего. Любая помощь очень ценится.
godhar
1

голосов
1

ответ
1.6k

Просмотры

прокатки применяются в панде показывает «TypeError: только длина-1 Массивы могут быть преобразованы в скаляры Python»

Dataframe df_implied_full имеет несколько столбцов, один из них называется «USDZARV1Y Curncy», и это только плавает. Этот код работает: с ума = лямбда х:. Np.median (np.fabs (х - np.median (х))) df_implied_full [ 'madtest'] = df_implied_full [ 'USDZARV1Y Curncy'] прокатки (окно = 60) .Не (MAD) Этот код не работает: тест = лямбда-х:. (х - np.median (х)) df_implied_full [ 'rolltest2'] = df_implied_full [ 'USDZARV1Y Curncy'] прокатки (окно = 60) .Нанесите (тест ) ошибка показано: Файл «панд \ algos.pyx», строка 1831, в pandas.algos.roll_generic (панды \ algos.c: 51581) TypeError: только длина-1 массивы могут быть преобразованы в скаляры Python Я использую Панды 0.18.1 и питон 2.7.12 Что случилось с моим кодом?
Gabriel
1

голосов
1

ответ
54

Просмотры

Функция, чтобы остановить после подсчета до 6

У меня есть функция подсчета ниже значения выше медианного значения, но он подсчитывает все значения в А, которые выше среднего. Мне это нужно, чтобы остановить отсчет, когда он получает до 6. Любая помощь будет большим. Функция CountAbove (RangeToCountAbove Как Range _ MedianOfLastGroup As Double) As Long Dim я построчно Double Dim As Double Dim CCELL As Range CountAbove = 0 для каждого CCELL В RangeToCountAbove If (cCell.Value> MedianOfLastGroup) Тогда CountAbove = CountAbove + 1 Else Exit Function End If Next End Function CCELL
user3018495
1

голосов
1

ответ
116

Просмотры

Медиана запросов MySQL, который извлекает медиану для каждого сгруппированных идентификаторов

Средний запрос возвращает результат, подобный следующему: VENDOR_ID | Медиана invoice_total 97 ............. | 418 Я хотел бы результат медианного запроса, чтобы выглядеть подобно следующей функции сра запрос: SELECT VENDOR_ID, ср (invoice_total) из счетов GROUP BY VENDOR_ID; Медиана запроса: SELECT, t3.vendor_id, AVG (middle_values) AS 'медианы' FROM (SELECT t1.invoice_total как 'middle_values', t1.vendor_id ИЗ (SELECT @row: = @ строка + 1, как `row`, iv.invoice_total, iv.vendor_id из счетов AS IV, (SELECT @row: = 0) КАК г где iv.vendor_id = 97 ORDER BY iv.invoice_total) AS t1, (SELECT COUNT (*) в качестве 'подсчета' из счетов IV ГДЕ iv.vendor_id = 97) AS t2 - следующее условие будет возвращать 1 запись для нечетных наборов чисел, или 2 записи для четных чисел множеств. Где t1.row> = t2.count / 2 и t1.row
gimmegimme
1

голосов
2

ответ
86

Просмотры

Python: average of dictionary key values over panda values

У меня довольно сложная структура данных, а именно словари в панде dataframe. Допустим, у меня есть этот dataframe. trials_ = [1,2,1,2] stimul_ = [1,1,2,2] data_ = [[{ 'peak_voltage': [30.5, 65], 'Spikecount': [2]}], [{» peak_voltage ': [30.5, 65, 30], 'Spikecount': [3]}], [{' peak_voltage ': [20.1], 'Spikecount': [1]}], 'NaN'] featve = pd.DataFrame ({ 'проба': trials_, 'стимул': stimul_, 'данные': data_}) featve стимула данные пробной 0 [{ 'peak_voltage': [30.5, 65], 'Spikecount': [2]}] 1 1 1 [{ 'peak_voltage': [30.5, 65, 30], 'Spikecount' ... 1 2 2 [{ 'peak_voltage': [20.1], 'Spikecount': [1]}] 2 1 3 NaN 2-Теперь я хочу, чтобы вычислить медиану и 25% / 75% квартиль каждого ключевого элемента моих словарей в моей колонке «данные» (здесь peak_voltage и Spikecount) для каждого стимула по всем испытаниям , Одним из примеров для медианы: Я хочу медиану peak_voltage когда раздражитель 1 был применен во всех испытаниях [30,5, 65, 20,1] -> 30.5. То же самое, когда был применен стимул два [30.5, 65, 30, NaN] -> 30.5. И, конечно же, для Spikecount. Честно говоря, я понятия не имею, с чего начать. Если бы я только хотел, чтобы вычислить медиану независимо от simulus, я бы просто использовать. featve.data.median Но это не то, что я хочу. Кроме того, если у меня не было словарей, но только цифры, я бы использовал что-то вроде featve.groupby ( «стимул»). data.apply (np.nanmedian) Но что я могу сделать в моем случае со словарями в таблице панды? EDIT 1 У меня 10 стимулов с 16 испытаний в каждой, в результате чего в 160 строк, в общей сложности. Словари являются выходом из набора инструментов называются EFEL, что я использую, чтобы найти определенные характеристики моих следов данных (например, временные пики нейронных потенциалов действия). Я решил организовать получившиеся 160 словарей в панде dataframe, чтобы следить за данные, стимулов и испытаний в то же самое время. Я не знаю, если это плохо в первую очередь. выбор времени пиков нейрональных потенциалов действия). Я решил организовать получившиеся 160 словарей в панде dataframe, чтобы следить за данные, стимулов и испытаний в то же самое время. Я не знаю, если это плохо в первую очередь. выбор времени пиков нейрональных потенциалов действия). Я решил организовать получившиеся 160 словарей в панде dataframe, чтобы следить за данные, стимулов и испытаний в то же самое время. Я не знаю, если это плохо в первую очередь.
Svenno Nito
1

голосов
1

ответ
86

Просмотры

correctness of fast small order statistic algorithm for odd-length array

Задача 9-3 учебника Введение в алгоритмы (КСПС) описывает быстрый O (п) алгоритм для нахождения К-го порядка статистики (к-й элемент в массиве, когда отсортированный) имеет длину п-массива, для конкретного так, что к значительно меньше, чем п. Я не уверен в правильности этого алгоритма при нечетном п, и хочу видеть способ доказать, что это правильно. Основная идея заключается в том, что мы сначала разделить массив на две половины, первый этаж с (N / 2) элементы, а второй с (п потолке / 2) элементы. Затем мы «партнер» каждый элемент в первой половине с соответствующим элементом во второй половине. При нечетном п это оставляет оставшийся unpartnered элемент. Для каждой пары партнеров, мы уверены, что левый партнер> = правильный партнер, поменяв два, если нет. Тогда, рекурсивно найти к-го порядка статистики второй половины, отражая любые свопы, сделанные во второй половине с соответствующими свопы в первой половине. После этого, к-го порядка статистика всего массива должна быть либо в первых к элементам в первой половине или первых к элементам во второй половине. Моя путаница происходит от случая, когда длина массива п нечетно, и есть одинокий элемент во второй половине, которая не имеет никакого партнера. Поскольку рекурсия выполняются на вторую половине, состоящей из последнего потолка (п / 2) элементов массива, в том числе неподеленных потерять партнер последнего элемента, и мы должны отразить все свопы, сделанные во второй половине с свопами, сделанных в рамках соответствующего партнеры в первой половине года, пока неясно, что делать, когда один из свопы включает последний элемент, так как он не имеет никакого партнера. В учебнике, кажется, не обращать особое внимание на эту проблему, так что я м при условии, что, когда своп включает последний элемент, то просто не делать какие-либо зеркальные ходы партнера в первой половине вообще. В результате, последний элемент просто «крадет» партнер того, кто он был заменен. Однако, в этом случае, есть простой способ увидеть, если алгоритм еще правильно? Что делать, если когда последний элемент крадет партнер Чужого, партнер на самом деле к-го порядка статистика, и становится местами позже в труднодоступном место? Механика рекурсии и секционирования с участием в выборе порядка статистики достаточно непрозрачная для меня таким образом, что я не могу с уверенностью исключить из этого сценария. партнер кем бы он ни был заменен. Однако, в этом случае, есть простой способ увидеть, если алгоритм еще правильно? Что делать, если когда последний элемент крадет партнер Чужого, партнер на самом деле к-го порядка статистика, и становится местами позже в труднодоступном место? Механика рекурсии и секционирования с участием в выборе порядка статистики достаточно непрозрачная для меня таким образом, что я не могу с уверенностью исключить из этого сценария. партнер кем бы он ни был заменен. Однако, в этом случае, есть простой способ увидеть, если алгоритм еще правильно? Что делать, если когда последний элемент крадет партнер Чужого, партнер на самом деле к-го порядка статистика, и становится местами позже в труднодоступном место? Механика рекурсии и секционирования с участием в выборе порядка статистики достаточно непрозрачная для меня таким образом, что я не могу с уверенностью исключить из этого сценария. и становится местами позже в труднодоступном месте? Механика рекурсии и секционирования с участием в выборе порядка статистики достаточно непрозрачная для меня таким образом, что я не могу с уверенностью исключить из этого сценария. и становится местами позже в труднодоступном месте? Механика рекурсии и секционирования с участием в выборе порядка статистики достаточно непрозрачная для меня таким образом, что я не могу с уверенностью исключить из этого сценария.
xdavidliu
1

голосов
1

ответ
57

Просмотры

Pandas: Compute sum of values for each unique element ('ID') in a given timeframe and then compute the median across all 'ID's

Я работаю на наборе данных, содержащих данные из такси едет в городе Чикаго. Данных содержит информацию за одну поездку, такие как такси ID, Timestamp, платы за проезд и т.д. среди других. Образец данных показан ниже от df.head () с отметками времени в панд DateTime: такси ID Pickup Community Area Trip Всего Trip End Timestamp 2016-04-25 18:00:00 bfec2c659fcbed3b508dc6caaf6f7ef39e17801e8ca0cc ... 8,0 16,00 2016-11 -16 15:45:00 f45c4bfa9d6c445eb03ab69093f7ec1e9cdecef83cb2ce ... 32,0 9,75 2016-01-15 17:45:00 ecfb6f2cdce5d4c4e80218f58070ae719060ee47e648f4 ... 32,0 14,75 2016-01-20 21:30:00 7d8179131ea9952793af4cda8635e94b56c2b92d3c376c ... 32,0 7,25 2016-02-11 9:15:00 d5c4fbae1c0c510364404a90fd477b19f7f03408ce40ff ... 35,0 18. 75 Предполагая, что я данные в течение одной недели, я хочу, чтобы достичь этого: Рассмотрим пользовательского подобранного выбора биннинга: например: час. Группа данные на такси ID, и суммировать суммы, сделанные каждое такси в течение этого часа. Вычислить медиану всех таких «почасовых доходов» между всем такси в соответствии такси ID (все еще в пределах этого одного часа). Повторите эти действия для каждого часа в сроках. За неделю, это 24 * 7 = 168 раз. Постройте медиану в час на всех часов в неделю. Это может быть продлен до нескольких часов в неделю, недель в год и т.д. В настоящее время, я могу использовать pivot_table, скажем, получить средний доход в час дня в течение всего периода времени (но это не для каждого час в неделю), или частоты дискретизации, чтобы получить средний тариф по времени (но это не «почасовой доход» из такси, это средний тариф за одну поездку).
HighVoltage
1

голосов
1

ответ
43

Просмотры

найти индекс наибольших разниц от медианы с NumPy

Я пытаюсь найти порядковый номер числа аномального значения. основанный на отличие от медианы я могу получить правильное большое количество, но всякий раз, когда небольшое число является останцем я только получаю большое число .. импорт Numpy в н.п. Защита findoutlier (LIS): outliermax = np.absolute (нп. макс (LIS) - np.median (LIS)) outliermin = np.absolute (np.min (LIS) - np.median (LIS)), если outliermax> outliermin: Argmax = np.argmax (лис, ось = 1) возвращение Argmax остальное: argmin = np.argmin (лис, ось = 1) возвращение argmin четкости (основной): Matx = np.array ([[10,3,2], [1,2,6]]) печати (findoutlier ( Matx)) threeMatx = np.array ([[1,10,2,8,5], [2,7,3,9,11], [19,2,1,1,5]]) печати (findoutlier (threeMatx)) Главный ()
Clueless
1

голосов
1

ответ
28

Просмотры

Заговор медианы Бункеры данных

Я вычислил Лари моих данных х значений, а также медиана каждого бункера, соответствующего значению ау. Ниже приведен пример моих данных я использовал для вычисления: х диапазоны значений от 0 до 1 значения у в любом диапазоне от любого значения, но каждое значения у имеет значение ах, связанное с ним Моим кодом: hist1, bins1 = np.histogram (х) medians_1 = pd.Series (у) .groupby (pd.cut (х, bins1)). (медиана) Hist = [129, 126, 94, 133, 179, 206, 142, 147, 90, 185] бункеров = [0 ., 0.09999926, 0.19999853, 0.29999779, 0.39999706, 0.49999632, 0.59999559, 0.69999485, 0.79999412, 0.8999933, 0.99999265] medians_1 = [14,42145 14,428275 14,427865 14,42535 14,42613 14,430235 14,441055 14,43472 14,424155 14,4187] Мне интересно, как я могу построить медианные значения для каждого связаны " бен» ? Я пытался построить график рассеяния, но у меня есть только средние значения и не любые значения по оси х. Кроме того, я не могу построить медианы по сравнению с исходными значениями х, потому что они не имеют одинаковый размер.
hlku2334
1

голосов
2

ответ
0

Просмотры

Панды DataFrame Медиана Функция

Если у меня есть панда DataFrame и хочу, чтобы вычислить среднее значение для каждого столбца, кажется, что ось аргумента = 1 должна дать медиану по столбцам (в соответствии с документацией). Но на практике, ось = 0 дает медиану столбцов. Вот простой воспроизводимой пример: импорт панды как Pd my_data = [[1,1, 2,2, 3,3], [1,2, 2,3, 3,4], [1,3, 2,4, 3,5]] DF = pd.DataFrame (my_data) печати (DF. головка ()) печать ( «\ nУзнать о вычислить медиану с осью = 1 \ п») печати (df.median (ось = 1)) Это показывает медиану за строкой. Изменение его оси = 0 показывает медиану по столбцам. Имеет ли это сделать с тем, как индекс устанавливается для DataFrame?
fraserbc
1

голосов
1

ответ
0

Просмотры

Выполните расчеты в BigQuery в строке и медиана - это возможно?

Моя проблема заключается в получении исходного набора sensorydata, что нуждается в некоторой обработке, прежде чем я могу использовать его. загрузки данных на клиенте и сделать обработку довольно медленно, поэтому ищет possibilty выгрузить эту логику в BigQuery. Представьте себе, у меня есть некоторые константы для набора датчиков. Они могут меняться, но я их, когда я хочу, чтобы сделать запрос A: 1, B: 2, C: 3, D: 2, E: 1, F: 2 Датчики подключаются, я знаю, что датчики подключены к каждому Другой. Это имеет значение ниже. А: БК Д: Е. Это таблица с результатами измерений на временной метки на датчике. Представьте себе тысячи строк. TS A | B | C | D | E | F 01 10 | 20 | 10 | 10 | 15 | 10 02 11 | 10 | 20 | 20 | 10 | 10 03 12 | 20 | 10 | 10 | 12 | 11 04 13 | 10 | 10 | 20 | 15 | 15 05 11 | 20 | 10 | 15 | 14 | 14 06 10 | 20 | 10 | 10 | 15 | 12 Я хочу, чтобы запросить TS 01 до 06 т.с. (в режиме реального времени может быть 1000-х строк снова). Я не хочу, чтобы вернуть это исходные данные, но это сделать некоторые расчеты: во-первых, для каждой строки, мне нужно, чтобы умалить константы, поэтому грести 01 будет выглядеть следующим образом: 01 9 | 18 | 17 | 8 | 14 | 8 Тогда BC нужно иметь умаляет и EF иметь D умаляет: 01 9 | 9 | 8 | 8 | 6 | 0 Последний шаг, когда у меня есть все строки, я хочу, чтобы возвращать строки, где каждый датчик имеет среднее значение из proceding X строк для этого датчика. Так TS A | B | 01 10 | 1 | 02 11 | 2 | 03 12 | 2 | 04 13 | 1 | 05 11 | 2 | 06 10 | 3 | 07 10 | 4 | 08 11 | 2 | 09 12 | 2 | 10 13 | 10 | 11 11 | 20 | 12 10 | 20 | возвращается (для X является 4) TS A | B | // первые 3 необходимы для медианы для 4-го значения 04 11,5 | и т.д. | // медиана 10, 11, 12, 13 05 11,5 | и т.д. | // медиана 11, 12, 13, 11 06 11,5 | и т.д. | // медиана 12, 13, 11, 10 07 и т.д. | и т.д. | 08 и т.д. | и т.д. | 09 и т.д. | и т.д. | 10 и т.д. | и т.д. | 11 и т.д. | и т.д. | 12 и т.д. | и т.д. | Получение данных на мой сервер и сделать известково очень медленно, я действительно интересно, если мы можем получить эти объемы данных в BigQuery, так что я могу получить быстрый вычисленный набор с моими собственными настройками выбора! Я делаю это в Node.js ... но в BigQuery SQL .. я теряюсь.
Riël
1

голосов
1

ответ
0

Просмотры

С # значением медианы расчета группового

Я должен вычислить медиану для группы значений в одном из моей C # функции. Я использовал формулу с сайтом, mathisfun. Ниже моя модель данных и код. общественный класс DataModel {публичной строка группа {получить; задавать; } Общественность долго? Население {получить; задавать; }} Образец DataList выглядит следующим образом,> DataList Count = 7> [0]: {DataModel}> Группа: "16 до 24" Население: 39657245> [1]: {DataModel} Группа: "25 до 34" Население: 58957845 > [2]: {DataModel} Группа: "35 до 44" Население: 12557845> [3]: {DataModel} Группа: "45 до 54" Население: 25698746> [4]: ​​{DataModel} Группа: «55 до 64 лет " Население: 325487 Ниже приводится функция логика, которая принимает DataList в качестве входных данных и возвращает среднее значение в качестве вывода. общественного INT CalculateMedianAge (IList DataList) {INT медиана = 0; вар сумма = 0; вар sumRange = 0; DataModel medianGroup = новый DataModel (); Еогеасп (вар элемент в DataList) {сумма = сумма + (INT) item.Population; } INT Диапазон = (сумма + 1) / 2; Еогеасп (запись в DataList вар) {sumRange = sumRange + (INT) entry.Population; если (диапазон> sumRange) продолжить; еще {medianGroup = вход; перерыв; }} Вар lowerBoundary = int.Parse (medianGroup.Group.Split (»«) [0]) - 0,5; вар cumulativeFrequency = 0; для (целое с = 0; s <dataList.IndexOf (medianGroup); s ++) {cumulativeFrequency = cumulativeFrequency + (INT) DataList [с] .Population; } Ширина переменная = int.Parse (medianGroup.Group.Split ( ' ') [2]) - int.Parse (medianGroup.Group.Split ('') [0]); // Ь низший класс граница группы, содержащей медиану - lowerBoundary // п общее число значений - сумма // В является накопленная частота групп до средней группы - cumulativeFrequency // G является частота средняя группа - (целое) lowerBoundary. Население // ш является группа ширина - ширина // MedianAge = L + (((п / 2) - В) / G) * W = медиана (INT) (lowerBoundary + (((сумма / 2) - cumulativeFrequency) / (INT) medianGroup.Population) * ширина); вернуться медиану; } Это работает отлично, и я могу иметь возможность получить среднее значение, а также. Но я пытаюсь переделан его с помощью LINQ. Я не хочу, чтобы держать его Continue и Перерыв заявления. Можно ли предложить / повторно фактора выше? т хочет сохранить его продолжать и Перерыв заявление. Можно ли предложить / повторно фактора выше? т хочет сохранить его продолжать и Перерыв заявление. Можно ли предложить / повторно фактора выше?
JG's Spark
1

голосов
2

ответ
0

Просмотры

Опасный медианный фильтр с использованием C #

Я делаю проект, основанный на обработке изображений и я должен был сделать медианной фильтрации для этого. Я сделал это с небезопасным способом потребовалось много времени, чтобы обработать (разрешение 800 * 600) есть быстрый открытый источник медианной фильтрации алгоритма, который реализуется в C #? Спасибо..
FlaMM3R
1

голосов
2

ответ
0

Просмотры

mysql median value per month

Я делаю некоторые запросы из базы данных, чтобы сделать графики, и графиком, который может потребоваться является медианой набора значений в месяц. Я знаю, как получить медиану всей совокупности наших данных, но по некоторым причинам я не могу получить GROUP BY МЕСЯЦА (..), чтобы отделить месяцев, так что возвращает медиану в месяц. Вот данные, которые у меня есть, и я хотел бы, чтобы каждый месяц, чтобы получить среднее значение для каждого месяца, независимо от типа сборки. 'Развитие', 1013.0164, 'июня' 'Развитие', 1170.8999 'июля' 'Развитие', 671.2837, "Август 'Flash-активы', 2961.3832, 'июня' 'Flash-активы', 6662.2335, 'июля'«Flash-активы '3902.5000 'Август' 'Release', 54,5499 'июнь' 'Release' 62,4832 'июля' 'Release', 398,8500,' Август» 'Упаковать', 1360.0834, 'Июнь' 'Упаковать', 6286.8505, ' 'Упаковать' Июльский', 1274.7833 'Август' 'Component', 16378.0161, 'июня' 'Component', 6063.5482 'июля' 'Component' , 23663.2496, «Август» «Источник Diff», 1503.8834, «Июнь» «Источник Diff», 1051.4500 «Июль» «Источник Diff», 73,7002, «Август» Я хотел бы закончить с этим, июнь, июль XXXX ХХХХ августа, XXXX Спасибо. EDIT: Текущий запрос Это вопрос, который я использую сейчас, чтобы получить общую медиану, я не знаю, как перевести это, чтобы получить его в месяц. SELECT t.Data как 'Медиана' FROM (SELECT CEIL (COUNT (*) / 2.0) как 'Middle', s.Data, как 'данные' FROM (SELECT bt.name как 'Ярлыки',
Hunter McMillen
1

голосов
1

ответ
0

Просмотры

Может кто-то пожалуйста, помогите мне понять этот код MatLab о срединных фильтрах?

Функция imOut = медианный фильтр (Imin, WindowWidth), если мод (WindowWidth, 2) == 0 дисп ( 'Окно имеет даже размер'); возвращать конечный IMAGESIZE = размер (Imin); imOut = Imin; windowBreadth = (WindowWidth - 1) / 2; при т = windowBreadth + 1: IMAGESIZE (1) - windowBreadth при п = windowBreadth + 1: IMAGESIZE (2) - windowBreadth t1 = Imin (м-windowBreadth: т + windowBreadth, н-windowBreadth: п + windowBreadth); t2 = Reshape (t1, WindowWidth * WindowWidth, 1); t3 = медиана (t2); imOut (т, п) = t3; конец конец моего объяснения: функция медианный фильтр принимает изображение (Imin) в качестве входных данных, а ширина окна медианного фильтра, то I» не уверен, почему нам нужно, если заявление после того, что мы берем размер входного изображения и сохранить его в переменной с именем IMAGESIZE то скопировать все значения IMIN к imOut тогда я все потерял, что windowbreadth? и не широта и ширина то же самое? Спасибо!
John John
1

голосов
2

ответ
3.8k

Просмотры

Дать функцию, чтобы найти медиану, вектор целых чисел

Я пытаюсь написать вторую функцию для вычисления вектора целых чисел, который находится в главной функции. Мой вектор настроен так. INT inputinfo; соиЬ inputinfo) {scores.push_back (inputinfo); } Вот моя медиана уравнение (который я не уверен, что это работает правильно). Я хотел бы сделать функцию для медианы, а затем вызвать его обратно в основную функцию, чтобы найти медиану вектора. двойная медиана; size_t размер = scores.size (); сортировать (scores.begin (), scores.end ()); если (размер% ВТОРАЯ == 0) {средний = (баллы [размер / 2 - 1] + баллы [размер / 2]) / 2; } Еще {средний = оценка [размер / 2]; } Спасибо за любую помощь.
josh conners
1

голосов
2

ответ
1.4k

Просмотры

CUDA средний расчет за счет сокращения [закрыт]

Я, вероятно, делать что-то невероятно глупое, но я не могу показаться, чтобы сделать эту работу по сокращению (вероятно, есть библиотека, которая делает это уже, но это для самообучения, поэтому, пожалуйста, медведь со мной). Я пытаюсь найти медиану массива целых записей, беря алгоритм выбора подхода, который я кодированный ниже: __global__ аннулированию gpuMedOdd (INT * запись, Int * мед) {ехЬегп __shared__ INT SData []; INT TID = threadIdx.x; Int я = blockIdx.x * blockDim.x + threadIdx.x; SDATA [TID] = запись [I]; __syncthreads (); для (INT = blockDim.x сек / 3, S> 0; с / = 3) {если (TID <s) {список Int [3]; Список [0] = SData [TID], список [1] ​​= SData [TID + S], список [2] = SData [TID + 2 * S]; если (список [1] ​​< Список [0]) swapGpu (список [1], список [0]); если (список [2] <список [0]) swapGpu (список [2], список [0]); если (список [2] <список [1]) swapGpu (список [2], список [1]); SData [TID] = список [1]; } __syncthreads (); } * Мед = SData [0]; } Я призываю эту функцию ядра как: gpuMedOdd (d_entries, d_med); Затем я скопировал значение в d_med более в мед и распечатать это значение. К сожалению, это значение всегда 0, независимо от входа. Что я делаю неправильно? Изменить: Я забыл упомянуть, swapGpu (а, б) определяются следующим образом: __device__ инлайн недействительной swapGpu (Int А, Int б) {INT дум = а; а = Ь; б = думы; } Edit2: Как было предложено ниже, вот совокупность кода. #include #include #include #define checkCudaErrors (ERR) __checkCudaErrors (эээ, __FILE__, __LINE__) #define getLastCudaError (МСГ) __getLastCudaError (МСГ, __FILE__, __LINE__) рядный недействительным __checkCudaErrors (cudaError эээ, Const символ * файл, Const ИНТ линия) {если (cudaSuccess! = ERR) {станд :: соиЬ
wolfPack88
1

голосов
1

ответ
289

Просмотры

Медиана-оф-медианы: что произойдет, если количество элементов не кратно пяти?

Я в настоящее время изучает алгоритм выбора ALG. после изучения из вики, у меня есть вопрос: что делать, если размер входного не делится на 5? как найти медиану с помощью медианы алгоритма медиан?
Jesse ZhAng
1

голосов
1

ответ
2k

Просмотры

MySQL: рассчитывать среднее значение

Я пытаюсь посчитать медиану цен. Я основал ответ, как сделать это здесь- Простой способ вычислить медиану с MySQL, но это не работает для меня, я получаю пустой результат. Может кто-нибудь помочь? ВЫБОР x.price от Медиана как х, у MEDIANA GROUP BY x.price HAVING SUM (SIGN (1-SIGN (y.price-x.price))) = (COUNT (*) + 1) / 2
Alex
1

голосов
1

ответ
1.6k

Просмотры

3D медианный фильтр в Matlab

Мне нужно сделать некоторые медианной фильтрации в 3D окрестности (скажем 5x5x5) по объему. Matlab не имеет медианный фильтр 3D (по крайней мере, не версию я использую). Есть ли способ, чтобы обеспечить 3D геометрию, делая 1D медианной фильтрации? То есть, реструктуризация 3D матрицы с использованием функций от Matlab (например, перекроить, переставляет, ...), чтобы преобразовать 3D-матрицу в 1D и сделать медианную фильтрацию, зная значения, используемые в медианном фильтре 1D являются те, которые определяют 3D окрестности , Возьмите 5x5x5 neghbourhood. Тогда мы имели бы 124 вокселей вокруг центрального воксела, значение которого должно быть замещена медианой 124 вокселей, окружающих его. Как я должен затем преобразовать свою 3D-матрицу в 1D вектор так, при применении медианной фильтрации я оставаться верным 3D геометрии? К сожалению, если бы я не был в состоянии быть более ясным. Спасибо
user1641496
1

голосов
2

ответ
149

Просмотры

how to calculate medians for unsorted dataset

У меня есть тысячи набора данных, как это:> student1 величины оценка [1] 4 10 [2] 1 12 [3] 78 5 [4] 6 294 Я хотел бы вычислить медиану баллов для этого студента. Для каждого счета, у нас есть некоторые величины. В этом случае, я хочу, чтобы вернуть 5, так как медиана один из 78 5s. Я посмотрел на некоторые должности здесь, как, как вычислить медиану на сгруппированных наборе данных? , Но я не могу использовать это, потому что у меня есть тысячи данных. Я также попытался установить aroma.light пакет и matrixstats пакет, но до сих пор, я не могу использовать «weighted.median функцию» вещь. Это говорит мне об ошибке: Не удалось найти функцию «weightedMedians» нормально, выше всего лишь пример, мой реальный набор данных, как:> тест [1] [,
Natalia
1

голосов
2

ответ
722

Просмотры

Перегородка в Быстрый выбор

Я должен реализовать алгоритм, который возвращает медиану массива. Поэтому я решил реализовать который, как представляется Быстрый выбор, чтобы быть эффективным для этого, и я увидел, что для тройственности я могу использовать тот же алгоритм, используемый в раздел Quicksort. Алгоритм раздел сообщил в моих конспектах (в коде C) заключается в следующем: для (я = с, J = привет, (я ось) {j--;} если (я 80 (у нас 60) Если я выбираю. любое другое число, алгоритм работает правильно. Является ли этот алгоритм не так? Спасибо за вашу помощь заранее!
LordFenerSSJ
1

голосов
1

ответ
868

Просмотры

Calculating Median for columns mysql

I have the following columns in mysql, Area, Price, Type, Quarter, Year etc. What I am trying to do, is calculate the median for every area (Juffair, Adliya, Mahooz) over these conditions. A typical row would look something like this Burhama, 500, Apartment, 3, 2014.. Burhama, 600, Apartment, 3, 2014 Juffair, 800, Apartment, 3, 2014 etc. What I want it to do is display a table with (Area - Median). So it should take all of Juffair and calculate the median. etc. What it is doing is: Displaying every single area(duplicate times) with it's price next to it. Moving around the loops, I get it to display, only the area's, but calculates the medians, across all the area's, instead of just the one that it is suppose to. Any help would be appreciated.
Johan Fourie
1

голосов
1

ответ
375

Просмотры

Поэлементно медиана много матриц, Python панд

У меня есть словарь матриц. Словарь называется ДИКТ. ДИКТ [место] возвращает квадрат NxN корреляции dataframe для этого места. Места список всех мест. (Ключи в словаре). Я хочу, чтобы по существу сделать список всех I, J компонента в dataframe через ключи и взять медиану всех тех. Вы можете думать об этом как складывать матрицы друг на друга и принимая среднее значение для каждого I, J элемента. Я надеюсь, что я объяснил это достаточно ясно. Мне было интересно, если есть умный способ сделать это. Я хотел бы избежать составления списка п (п + 1) / 2 уникальный я, пары -м, а затем принимать медианы, а затем положить их обратно на свое место в конечной средней матрицы (dataframe).
wolfsatthedoor
0

голосов
0

ответ
16

Просмотры

MySQL: Finding the median using a “two halves” method

Я относительно новым для MySQL, и я пытаюсь написать функцию, чтобы найти медиану списка широт. Я нашел несколько различных решений в Интернете на эту проблему, но я не мог понять, что они делают. Я решил сделать что-то немного более легко читаемым и понятным, но я, кажется, работает в некоторые ошибки. В принципе, метод находит минимум самой большой половины номеров, а максимум в нижней половине, и в среднем их. Это должно охватывать как случаи четных и нечетных длин. Я попытался тестирование каждого куска кода и по какой-то причине, я думаю, что все мои ошибки приходят от 6-й строке коды, где я пытаюсь найти среднее значение. Мой случай должен охватывать как четное и нечетное длину списков, поэтому я оба med1 и med2. Вот мой текущий код: SET @ med1 = (SELECT, мин (lat_n) ОТ станции, где lat_n> = (SELECT lat_n от станции ORDER BY lat_n ASC LIMIT ПОЛ ((SELECT COUNT (*) / 2 от станции)), 1)); SET @ med2 = (SELECT макс (lat_n) ОТ станции, где lat_n
NeonCop
1

голосов
2

ответ
940

Просмотры

Finding Median of Dates in SQL Server 2008

Я ищу способ взять медиану связки даты начала и окончания (много и много дат). Тем не менее, было бы специфично для различных «номеров счетов-фактур.» См образец данных ниже. invoice_no начало счета дата счета дата окончания 4006 11/14/2001 12/15/2004 20071 11/29/2001 02/01/2003 19893 11/30/2001 12/02/2001 19894 11/30/2001 12/04 / 2001 004 10/22/2002 10/31/2002 Найти медиану между датой началом и окончанием. Медиана будет просто все, что между началом и конечной датой для этого конкретного invoice_no. Тем не менее, в попытке фильтровать данные в максимально возможной степени. Я понял, что я также могу сделать ГДЕ СТАТУС «ПРИНЯЛ», и он должен также помочь держать много uncessary даты вне. Также, Я только хотел, чтобы отфильтровать от нескольких месяцев, так что я добавил BETWEEN DATETIME, как хорошо. Код до сих пор: ТМП AS (SELECT invoice_no, invoice_start_date, invoice_end_date, check_date, status_code, литых (COUNT (*) НАД (PARTITION BY invoice_no) в качестве поплавка), как общего, ROW_NUMBER () OVER (PARTITION BY invoice_no ORDER BY invoice_start_date, invoice_end_date , check_date) КАК гп ОТ INVOICE_HEADER INNER JOIN ON INVOICE_HEADER_CUSTOM INVOICE_HEADER.invoice_id = INVOICE_HEADER_CUSTOM.invoice_id ГДЕ status_code 'REJECTED' И Check_Date МЕЖДУ CONVERT (DateTime, '2014-12-01 00:00:00', 102) и преобразования (DateTime, '2014-12-31 00:00:00', 102)) SELECT * FROM TMP ГДЕ (всего / 2,0 - 1) <
SuGo
1

голосов
2

ответ
3.7k

Просмотры

Поиск медиану с помощью сводной таблицы в Excel с помощью двух отфильтрованных столбцов

У меня есть столбец A для Типа задания. У меня есть столбец B для опыта Range. У меня есть столбец C для зарплаты. Они находятся в листе с именем «Данные». Я создал сводную таблицу с работой типа в качестве строк и опыт Range в виде столбцов. (В другом листе) я хочу найти медиану для каждой ячейки в сводной таблице. Как я могу это сделать? например, как я могу найти медиану Оклад для всех «Stage Manager» (ячейка А2) с "менее чем на 2 года (ячейка B1) опыт? Пожалуйста помоги. Спасибо!
Amit Saxena
0

голосов
1

ответ
20

Просмотры

Как сделать расчет медианы быстрее в Python

Я хотел бы, чтобы вычислить среднюю линию за линией в dataframe более 500000 строк. На данный момент я использую np.median, потому что NumPy оптимизирована для работы на одном ядре. Это по-прежнему очень медленно, и я хотел бы найти способ параллельно вычисления я пытался с numexpr, но это не представляется возможным. EDIT: На самом деле я также должен Q1 и Q3, так что я не могу использовать модуль статистики, которая не позволяет рассчитать квартили. Вот как рассчитать медиану для момента д = np.transpose (np.percentile (данные [row_array], [25,50,75], ось = 1)) данные [ 'Q1_' + Семейство] = д [: , 0] данные [ 'MEDIAN_' + семейство] = д [: 1] данные [ 'Q3_' + семейство] = д [:, 2]
Pierre Carceller

Просмотр дополнительных вопросов