Я бы предложил использовать find_peaks из модуля scipy.signal
. Эта функция принимает одномерный массив и находит все локальные максимумы путем простого сравнения соседних значений. Необязательно, подмножество этих пиков может быть выбрано путем указания условий для свойств пика.
Вот фрагмент кода, с которого можно начать:
import matplotlib.pyplot as plt
import numpy as np
from scipy.signal import find_peaks
Fs = 8000
f = 5
sample = 8000
x = np.arange(sample)
y = np.sin(2 * np.pi * f * x / Fs)
peaks = find_peaks(y)
plt.scatter(peaks[0], np.ones(f), c='red')
plt.plot(x, y)
plt.xlabel('sample(n)')
plt.ylabel('voltage(V)')
plt.show()
Ваши максимумы:
print(peaks[0])
[ 400 2000 3600 5200 6800]
Ваш может использовать тот же контроллер, просто добавить дополнительный параметр и назвать это видом. Затем зарегистрируйтесь в контроллере, что имеет вид значения, и отсортируйте свои данные на основе того параметра.
Или если Вы хотите сделать вещи на стороне клиента, можно использовать что-то как tablesorter, плагин для jQuery.
С MVC Вы сортируете, имеют к сортировке самокрутки, подкачке страниц, и т.д. Я предложил бы Таблица данных YUI или некоторые из других Сеток JavaScript там.
Также при нахождении Вашего сам выполнение тяжелой работы Сетки Данных, можно хотеть смотреть на ASP.NET Динамические Данные, это специально предназначено для этих типов взаимодействий против ORM's.
Сначала используйте jQuery. jQuery является Вашим другом. Затем используйте это потрясающее и вероятно лучшее управление Сеткой для jQuery jqGrid.
В Вашем CustomerController создают действие под названием CustomerData. Все взаимодействие с Сеткой должно указать на это действие.
Идут сюда для тонн примеров о том, как использовать jqGrid.