Я студент инженерного градиента, который в настоящее время делает переход от 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
Используемый мной алгоритм - это тот, который используется на веб-сайте NASA сравнивая Numpy и MATLAB. На веб-сайте показано, что Numpy превосходит MATLAB с точки зрения скорости для этого алгоритма. Тем не менее мои результаты показывают время моделирования 0,49 с для Numpy и время моделирования 0,29 с для MATLAB. Я также запустил решение Gauss-Seidel как на Numpy, так и на Matlab, и получаю аналогичные результаты (16,5 с против 9,5 с).
Я новичок в Python и не очень грамотен в плане программирования. Я использую 64-разрядный дистрибутив Python для WinPython, но также попробовал Pythonxy безрезультатно.
Одна вещь, которую я прочитал, которая должна повысить производительность, - это создание Numpy с использованием MKL. К сожалению, я не знаю, как это сделать в Windows. Нужно ли мне это делать?
Любые предложения?