MATLAB в два раза быстрее, чем Numpy

Я студент инженерного факультета, в настоящее время делающий переход с MATLAB на Python для целей численного моделирования. У меня сложилось впечатление, что для базовых манипуляций с массивами Numpy будет работать так же быстро, как MATLAB. Тем не менее, для двух разных программ, которые я пишу, оказывается, что MATLAB чуть менее чем в два раза быстрее Numpy. Тестовый код, который я использую для Numpy (Python 3.3):

import numpy as np
import time

a = np.random.rand(5000,5000,3)

tic = time.time()
a[:,:,0] = a[:,:,1]
a[:,:,2] = a[:,:,0]
a[:,:,1] = a[:,:,2]
toc = time.time() - tic
print(toc)

Принимая во внимание, что для MATLAB 2012a я использую:

a = rand(5000,5000,3);

tic;
a(:,:,1) = a(:,:,2);
a(:,:,3) = a(:,:,1);
a(:,:,2) = a(:,:,3);
toc

Я использую алгоритм, который используется в НАСАВеб-сайт сравнивая Numpy и MATLAB. Сайт показывает, что Numpy превосходит MATLAB по скорости для этого алгоритма. Тем не менее, мои результаты показывают время моделирования 0,49 с для Numpy и время моделирования 0,29 с для MATLAB. Я также запустил решатель Гаусса-Зейделя как на Numpy, так и на Matlab, и я получил аналогичные результаты (16,5 с против 9,5 с)

Я новичок в Python и не очень грамотный в плане программирования. Я использую WinPython 64-битный дистрибутив Python, но также пробовал Pythonxy безрезультатно.

Одна вещь, которую я прочитал, которая должна улучшить производительность, - это сборка Numpy с использованием MKL. К сожалению, я не знаю, как это сделать в Windows. Мне вообще нужно это делать?

Какие-либо предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос