2017-11-29 2 views

답변

2

@vectorize은 한 번에 하나의 요소 (스칼라)를 배열에 적용 할 수있는 표현식을 작성하는 데 사용됩니다. @jit 데코레이터는 더 일반적이며 모든 유형의 계산에서 작동 할 수 있습니다.

워드 프로세서에서 다른 혜택에 대한 자세한 설명이 있습니다 :

http://numba.pydata.org/numba-doc/latest/user/vectorize.html

당신은, "왜 나는를 사용하여 간단한 반복 루프를 컴파일하는 대신이 통과 할 자신을 요청할 수 있습니다 @ 지트 데코레이터? " 대답은 NumPy ufuncs가 축소, 누적 또는 방송과 같은 다른 기능을 자동으로 얻는 것입니다.

코드가 빨라지지 않는 이유는 (지트 된 코드와 지트되지 않은 코드 사이에서 거의 동일한 성능을 나타냄), 수행중인 작업이 이미 저수준 numpy 벡터화 연산 뒤에 앉아 컴파일 된 코드.

중간 배열을 만들지 않기 위해 암시 적 루프를 풀면 약간의 비용 절감 효과가있을 수 있지만 일반적으로 numba는 numpy로 쉽게 벡터화되지 않는 작업보다 뛰어납니다.

+0

numpy가 이미 처리했기 때문에 위의 코드는 지트 될 수 없다는 것을 의미합니까? Numba는 'for loops'에서 일반적으로 유용합니다. –

관련 문제