저는 공학 시뮬레이션 학생으로서 수치 시뮬레이션을 위해 현재 MATLAB에서 Python으로 전환하고 있습니다. 나는 기본적인 배열 조작을 위해 Numpy가 MATLAB만큼 빠르다는 인상을 받았다. 그러나 MATLAB이 Numpy보다 두 배 빠르기 때문에 필자가 작성한 두 가지 프로그램에 대해 나타납니다. 내가 NumPy와 위해 사용하고 테스트 코드 (파이썬 3.3)입니다 :Numpy의 두 배 빠른 MATLAB
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 website에 사용되는 하나입니다 Numpy와 MATLAB. 이 웹 사이트는 Numpy가이 알고리즘의 속도면에서 MATLAB을 능가한다는 것을 보여줍니다. 그러나 내 결과는 Numpy의 경우 0.49 초, MATLAB의 경우 0.29 초의 시뮬레이션 시간을 보여줍니다. 나는 또한 Numpy와 Matlab 모두 Gauss-Seidel 솔버를 실행했으며 비슷한 결과를 얻었습니다 (16.5 초 대 9.5 초)
저는 파이썬에 아주 새로운 지식을 보유하고 있으며 프로그래밍 측면에서 많은 지식이 없습니다. WinPython 64 비트 Python 배포판을 사용하고 있지만 Pythonxy를 사용하지 않으려 고 시도했습니다.
내가 읽은 한 가지는 성능을 향상시켜야한다는 것이 MKL을 사용하여 Numpy를 구축하는 것입니다. 불행히도 Windows에서이 작업을 수행하는 방법을 모릅니다. 나는 이것을 할 필요가 있니?
제안 사항?
Christoph Gohlke는 많은 Python 패키지에 대한 사전 컴파일 된 Windows 바이너리를 제공하며 NumPy는 Intel MKL에 링크되어 있습니다. http://www.lfd.uci.edu/~gohlke/pythonlibs/ – Amro
예. 파이썬은 Matlab에 비해 훨씬 느린 편 이었으므로 운이 좋았습니다. :-) – horchler
WinPython의 현재 배포본 [이미 NumPy-MKL과 함께 제공] (https://code.google.com/p/winpython/wiki/PackageIndex_33). – Jaime