Как получить диаграммы в Apache Poi для обновления при изменении их данных

Использование python 2.7

Ниже приведены мои скорости вместе с xrange:

python -m timeit -s "import numpy" "for k in numpy.arange(5000): k+1"

1000 циклов, лучше всего 3: 1,22 мс за цикл

python -m timeit "for k in range(5000): k+1"

10000 циклов, наилучшее из 3: 186 usec за цикл

python -m timeit "for k in xrange(5000): k+1"

10000 циклов, лучше всего 3: 161 usec за цикл

Numpy заметно медленнее, потому что он выполняет итерацию по numpy-specific array. Это не основная функция. Во многих случаях их следует рассматривать скорее как монолитный набор чисел, а не простых списков / итераций. Например, если у нас есть довольно большой и-пиш-список чисел, который мы хотим поднять до третьей степени, мы можем сделать что-то вроде этого:

python -m timeit "lst1 = [x for x in range(100000)];" "lst2 = map(lambda x: x**3, lst1)"

10 петель, лучше всего 3: 125 msec per loop

Примечание: lst1 представляет собой произвольный список. Я знаю, что вы можете ускорить это в исходной лямбда, выполнив x ** 3 для x в диапазоне, но это связано с списком, который должен уже существовать и может быть очень не последовательным.

В любом случае, numpy должен рассматриваться как массив:

python -m timeit -s "import numpy" "lst1 = numpy.arange(100000)" "lst2 = lst1**2"

10000 циклов, лучше всего 3: 120 usec за цикл

Скажем, у вас было два списка произвольных значений , каждый из которых вы хотите размножать вместе. В ванильном python вы можете сделать:

python -m timeit -s "lst1 = [x for x in xrange(0, 10000, 2)]" "lst2 = [x for x in xrange(2, 10002, 2)]" "lst3 = [x*y for x,y in zip(lst1, lst2)]"

1000 циклов, лучше всего 3: 736 usec за цикл

И в Numpy:

python -m timeit -s "import numpy" "lst1 = numpy.arange(0, 10000, 2)" "lst2 = numpy.arange(2, 10002, 2)" "lst3 = lst1*lst2"

100000 циклов, лучше всего 3: 10,9 usec за цикл

В этих последних двух примерах NumPy взлетает вперед в качестве явного победителя. Для простой итерации по списку диапазон или xrange вполне достаточен, но ваш пример не учитывает истинную цель массивов Numpy. Это сравнение самолетов и автомобилей; да, самолеты, как правило, быстрее для того, что они предназначены, но попытка летать в ваш местный супермаркет не является разумной.

0
задан user1486990 15 January 2019 в 17:40
поделиться