Один из подходов ниже:
def RunningMedian(x,N):
idx = np.arange(N) + np.arange(len(x)-N+1)[:,None]
b = [row[row>0] for row in x[idx]]
return np.array(map(np.median,b))
#return np.array([np.median(c) for c in b]) # This also works
Я нашел намного более быстрый (в десятки тысяч раз быстрее), скопированный следующим образом:
from collections import deque
from bisect import insort, bisect_left
from itertools import islice
def running_median_insort(seq, window_size):
"""Contributed by Peter Otten"""
seq = iter(seq)
d = deque()
s = []
result = []
for item in islice(seq, window_size):
d.append(item)
insort(s, item)
result.append(s[len(d)//2])
m = window_size // 2
for item in seq:
old = d.popleft()
d.append(item)
del s[bisect_left(s, old)]
insort(s, item)
result.append(s[m])
return result
Взгляните на ссылка: run_median
Мы склоняемся к PrinceXML для создания документации в формате PDF, это, кажется, подходящий вариант для нашего требования продвинуть XHTML/CSS в PDF без дополнительной конструкции документа.
ITextSharp является довольно легким инструментом PDF для использования с .NET (это - порт проекта iText java). Свободный, с открытым исходным кодом и довольно высокого уровня, таким образом, это - код для пунктов маркированного списка:
List overview = new List(false, 10); //false =unordered, true= numbered
overview.Add(new ListItem("This is an item"));
overview.Add("This is another item");
Не делает Microsoft Word все же.
Для динамического поколения PDF мы использовали TallPDF..... работавший довольно хороший.....
Проверьте pdfFactory Комплект разработчика.
Я не использовал его сам, но инструмент FinePrint от тех же людей был одним из инструментов Best для Windows (не использующий Windows или FinePrint больше).
Для генерации файлов Word я рассмотрел бы использование нового формата OpenXML. Microsoft оказывает хорошую поддержку для него, и это должно быть довольно просто в использовании. Демонстрационная статья
Я не полагаю, что они делают автоволшебно, но мне везет с комплектами инструментальных средств SyncFusions.