Numpy 배열 할당: 메모리 할당 차이
NumPy에서는 배열에 값을 할당하는 세 가지 일반적인 방법이 있습니다.
B = A
B = A를 사용하면 새 배열을 생성하지 않습니다. 대신 새 이름(B)을 기존 배열(A)에 바인딩합니다. 결과적으로 한 배열에 대한 모든 수정 사항은 다른 배열에 반영됩니다.
B[:] = A
이 구문은 다음을 사용하여 새 배열 B를 생성합니다. A와 동일한 차원 및 값. 원래 배열 A는 수정되지 않습니다. 이 방법은 numpy.copy에 비해 메모리 할당이 덜 필요합니다.
numpy.copy(B, A)
이 방법은 작성한 대로 합법적이지 않습니다. B = numpy.copy(A)여야 합니다. numpy.copy는 A와 동일한 크기와 값을 가진 새 배열 B를 생성합니다. 이 방법은 원래 배열에서 데이터의 별도의 물리적 복사본을 생성하기 때문에 B[:] = A에 비해 더 많은 메모리 할당이 필요합니다.
추가 메모리는 언제 할당됩니까?
numpy.copy를 사용하여 배열의 새로운 물리적 복사본을 생성하면 추가 메모리가 할당됩니다. 복사된 데이터에 연속된 새로운 메모리 블록을 할당하기 때문입니다.
메모리가 할당되지 않는 경우는 언제입니까?
B = A를 사용하면 메모리가 할당되지 않습니다. 왜냐하면 단순히 원래 배열의 이름을 바꾸는 것이기 때문입니다. B[:] = A를 사용하면 원래 배열과 동일한 메모리 위치를 재사용하므로 메모리가 할당되지 않습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3