Tag: performance

numpy ufuncs speed vs для скорости цикла

Я много читал «избегаю циклов с numpy». Итак, я попробовал. Я использовал этот код (упрощенная версия). Некоторые вспомогательные данные: In[1]: import numpy as np resolution = 1000 # this parameter varies tim = np.linspace(-np.pi, np.pi, resolution) prec = np.arange(1, resolution + 1) prec = 2 * prec – 1 values = np.zeros_like(tim) Моя первая реализация […]

Почему так быстро?

Это следующий вопрос к этому вопросу, в котором jezrael использовал pandas.DataFrame.groupby для увеличения на несколько сотен скорости создания списка. В частности, пусть df – большой фрейм данных, тогда index = list(set(df.index)) list_df = [df.loc(x) for x in index] а также list_df = [x for i,x in df.groupby(level=0, sort=False)] дают тот же результат, причем последний более […]

Почему мое сито Eratosthenes работает быстрее с целыми числами, чем с булевыми?

Я написал простое сито Эратосфена, которое использует список из них и превращает их в нули, если не просто, так: def eSieve(n): #Where m is fixed-length list of all integers up to n '''Creates a list of primes less than or equal to n''' m = [1]*(n+1) for i in xrange(2,int((n)**0.5)+1): if m[i]: for j in […]

Пункт номер быстрее, чем оператор

У меня есть следующий код в python, который по крайней мере для меня производит странные результаты: import numpy as np import timeit a = np.random.rand(3,2) print timeit.timeit('a[2,1] + 1', 'from __main__ import a', number=1000000) print timeit.timeit('a.item((2,1)) + 1', 'from __main__ import a', number=1000000) Это дает результат: 0.533630132675 0.103801012039 Кажется, нормально, если я только пытаюсь получить […]

Почему это улучшенное сито медленнее с pypy?

def sieve(n): nums = [0] * n for i in range(2, int(n**0.5)+1): if nums[i] == 0: for j in range(i*i, n, i): nums[j] = 1 return [i for i in range(2, n) if nums[i] == 0] def sieve_var(n): nums = [0] * n for i in range(3, int(n**0.5)+1, 2): if nums[i] == 0: for j […]

Быстрая замена на месте некоторых значений в массиве numpy

Должен быть более быстрый способ сделать замену ценностей, не так ли? У меня есть 2D-массив, представляющий сетку высот / батиметрии. Я хочу заменить что-либо более 0 на NAN, и этот способ очень медленный: for x in range(elevation.shape[0]): for y in range(elevation.shape[1]): if elevation[x,y] > 0: elevation[x,y] = numpy.NAN Похоже, это было бы намного лучше!

Почему реализация JITted Python все еще медленная?

Я понимаю, почему накладные расходы на интерпретацию дороги, но почему реализации JITted Python (Psyco и PyPy) все еще намного медленнее, чем другие языки JIT, такие как C # и Java? Изменить: я также понимаю, что все является объектом, динамическая типизация является дорогостоящей и т. Д. Однако для функций, где типы могут быть выведены, я не […]

Matplotlib, альтернативы savefig () для повышения производительности при сохранении объекта CString?

Я пытаюсь ускорить процесс сохранения моих диаграмм на изображения. Прямо сейчас я создаю объект cString, где я сохраняю диаграмму с помощью savefig; но я действительно очень благодарен за помощь в улучшении этого способа сохранения изображения. Я должен делать эту операцию десятки раз, и команда savefig очень медленная; должен быть лучший способ сделать это. Я прочитал […]

Где я могу найти сложность времени и пространства встроенных типов последовательностей в Python

Мне не удалось найти источник этой информации, не глядя на сам исходный код Python, чтобы определить, как работают объекты. Кто-нибудь знает, где я могу найти это онлайн?

Почему log2 и log1p работают намного быстрее, чем log и log10?

Во время игры с этим вопросом я заметил что-то, что я не мог объяснить относительно относительной производительности np.log2 , np.log и np.log10 : In [1]: %%timeit x = np.random.rand(100000) ….: np.log2(x) ….: 1000 loops, best of 3: 1.31 ms per loop In [2]: %%timeit x = np.random.rand(100000) np.log(x) ….: 100 loops, best of 3: 3.64 […]

Python - лучший язык программирования в мире.