numpy 2

numpy array broadcasting

Numpy를 활용한 배열 연산 numpy는 python에서 텐서 연산을 효율적으로 수행할 수 있도록 해주는 라이브러리 수학적으로 벡터의 요소별 연산을 할 때, 텐서의 shape이 일치하지 않으면 계산할 수 없음 예를 들어, $x = [1, 2, 3]$인 3차원 벡터의 각 요소에 1씩 더해주려면 x + np.array([1,1,1])처럼 계산 하지만 numpy에서는 배열의 형태가 달라도 의도한 계산을 할 수 있는 broadcasting을 지원하기 때문에 x + 1로 같은 결과를 얻음 2차원 배열에서도 다음과 같이 broadcasting이 적용된 연산을 할 수 있음. Broadcasting rule 위의 예시에서는 낮은 차원의 예시이기 때문에 쉽게 이해하고 적용할 수 있지만, 차원이 높아짐에 따라 규칙을 명..

numpy array를 사용할 때 for문을 피해야하는 이유

Avoid for loops with numpy array numpy는 배열을 효율적으로 다룰 수 있도록 만들어진 라이브러리입니다. 같은 배열을 저장하고 있더라도 list에 비해 효과적으로 메모리를 사용하고, tensor간 연산을 지원해 계산 속도에서도 큰 이점을 가집니다.1 요소별로 연산을 필요로 할 때, for 문을 활용해 계산을 하면 numpy의 장점을 활용하지 못합니다. numpy는 범용 함수(ufunc)을 지원하기 때문에 for문을 사용할 때와 비교가 안될 만큼 효율적인 요소별 계산을 할 수 있습니다. 아래 예를 보게 된다면 numpy 배열에 요소별 연산을 할 때 for 문이 얼마나 비효율적인지 알게 됩니다. 속도 뿐만 아니라 코드를 작성할 때도 for 문을 사용하지 않아도 되기 때문에 간결하게..