NumPy 배열 전치: 1D 행렬 동작 디코딩
NumPy 배열을 다룰 때 특히 전치 연산의 동작을 이해하는 것이 중요합니다. 1D 배열의 경우. 1D 배열을 전치하면 일반적인 기대와는 달리 또 다른 1D 배열이 생성됩니다.
전치 연산과의 혼동
다음 NumPy 코드를 고려하세요.
import numpy as np a = np.array([5,4]) print(a) print(a.T)
이 시나리오에서 a.T를 호출하면 가정할 수 있는 것처럼 배열이 전치되지 않습니다. 대신 배열을 변경하지 않고 반환합니다.
1D 배열 전치 동작
이 동작의 이유는 NumPy의 1D 배열의 기본 특성에 있습니다. MATLAB과 달리 NumPy는 1D 배열과 2D 배열을 구분하지 않습니다. NumPy의 1D 배열은 본질적으로 차원(1, n)을 갖는 2D 배열입니다. 여기서 n은 배열의 길이를 나타냅니다.
따라서 1D 배열을 바꾸면 요소가 한 축을 따라 재배열되기만 하면 됩니다. 차원(n, 1)이 있는 2D 배열입니다. 주어진 예에서 배열은 이미 (1, 2) 차원 배열이고 모든 축 회전은 1D 배열로 유지되므로 전치 작업은 눈에 보이는 효과가 없습니다.
2D 배열 만들기 전치
원하는 결과가 1D 배열을 2D 배열로 바꾸는 것이라면 np.newaxis를 사용할 수 있습니다. (또는 동등하게 None) 추가 차원을 생성합니다.
a = np.array([5,4])[np.newaxis] print(a) print(a.T)
np.newaxis로 차원을 추가하면 결과 배열이 (1, 2)차원 배열이 되어 적절한 전치가 가능합니다.
추가 통찰력
그러나 대부분의 실제 시나리오에서는 1D 배열은 불필요합니다. NumPy는 계산 중에 자동으로 1D 배열을 더 높은 차원으로 브로드캐스트하여 행 벡터로 작동하는지 열 벡터로 작동하는지 사용자에게 투명하게 만듭니다.
위 내용은 1D NumPy 배열을 전치해도 모양이 바뀌지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!