История изменений
Исправление omegatype, (текущая версия) :
Заменил np.roll на совсем простенькую функцию, полагающую массив одномерным. С 10.5 мс. сократил до 6.5 мс. Хотелось бы ещё быстрее...
from timeit import timeit
setup = """
import numpy as np
a = np.arange(1024)
def my_roll(a, shift):
if shift == 0:
return a
else:
return np.concatenate((a[-shift:], a[:len(a) - shift]))
"""
expression = """
np.array([my_roll(a, i) for i in range(len(a))])
"""
N = 1000
print timeit(expression, setup=setup, number=N) / N * 1000, 'ms'
Исходная версия omegatype, :
Заменил np.roll на совсем простенькую функцию, полагающую массив одномерным. С 10.5 мс. сократил до 6.5 мс. Хотелось бы ещё быстрее...
from timeit import timeit
setup = """
import numpy as np
a = np.arange(1024)
def my_roll(a, shift):
if shift == 0:
return a
else:
return np.concatenate((a[-shift:], a[:len(a) - shift]))
"""
expression = """
np.array([my_roll(a, i) for i in range(len(a))])
"""
N = 1000
print timeit(expression, setup=setup, number=N) / N * 1000, 'ms'