[PYTHON] NumPy 배열 전치시키기
PYTHONNumPy 배열 전치시키기
파이썬과 NumPy를 사용하고 "조바꿈"문제가 있습니다.
a=array([5,4])
print a
print a.T
a.T를 호출하면 배열을 전 환하지 않습니다. a가 예를 들어 [[], []이면 올바르게 바뀌지 만 [..., ..., ...]의 조바꿈이 필요합니다.
해결법
-
==============================
1.그것은 예상대로 정확하게 작동합니다. 1D 배열의 조 변경은 여전히 1D 배열입니다! (만약 당신이 matlab에 익숙하다면, 근본적으로 1D 배열의 개념을 가지고 있지 않습니다 .Matlab의 "1D"배열은 2D입니다.)
그것은 예상대로 정확하게 작동합니다. 1D 배열의 조 변경은 여전히 1D 배열입니다! (만약 당신이 matlab에 익숙하다면, 근본적으로 1D 배열의 개념을 가지고 있지 않습니다 .Matlab의 "1D"배열은 2D입니다.)
1D 벡터를 2D 배열로 바꾼 다음 조바꿈 시키려면 np.newaxis (또는 None, 똑같은 것이고 newaxis는 더 읽기 쉽습니다)로 슬라이스하십시오.
import numpy as np a = np.array([5,4])[np.newaxis] print(a) print(a.T)
일반적으로 말해서, 당신은 이것에 대해 걱정할 필요가 없습니다. 여분의 특성 항목을 추가하는 것은 보통 습관에서 벗어나면 원하는 내용이 아닙니다. Numpy는 다양한 계산을 수행 할 때 1D 배열을 자동으로 브로드 캐스트합니다. 일반적으로 행 벡터와 열 벡터 (둘 다 벡터가 아니며 둘 다 2D입니다!)를 구별 할 필요가 없습니다. 벡터 만 필요할 때입니다.
-
==============================
2.하나가 아닌 두 개의 브래킷 쌍을 사용하십시오. 이렇게하면 한 쌍의 괄호 쌍을 사용하는 경우 만드는 1D 배열과 달리 2 차원 배열이 바뀔 수 있습니다.
하나가 아닌 두 개의 브래킷 쌍을 사용하십시오. 이렇게하면 한 쌍의 괄호 쌍을 사용하는 경우 만드는 1D 배열과 달리 2 차원 배열이 바뀔 수 있습니다.
import numpy as np a = np.array([[5, 4]]) a.T
보다 철저한 예 :
>>> a = [3,6,9] >>> b = np.array(a) >>> b.T array([3, 6, 9]) #Here it didn't transpose because 'a' is 1 dimensional >>> b = np.array([a]) >>> b.T array([[3], #Here it did transpose because a is 2 dimensional [6], [9]])
numpy의 모양 메서드를 사용하여 여기에서 진행되는 작업을 확인하십시오.
>>> b = np.array([10,20,30]) >>> b.shape (3,) >>> b = np.array([[10,20,30]]) >>> b.shape (1, 3)
-
==============================
3.내가보기에 파티에 조금 늦었지만, 여기 나의 가장 좋아하는 트릭이있다.
내가보기에 파티에 조금 늦었지만, 여기 나의 가장 좋아하는 트릭이있다.
a = np.array([1, 2, 3, 4]) a = a.reshape((-1, 1)) # <--- THIS IS THE TRICK print a array([[1], [2], [3], [4]])
여기 -1이 "필요한만큼의 행"을 의미한다는 것을 이해하면 배열을 "변환"하는 가장 가독성있는 방법이라고 생각합니다.
-
==============================
4.기존 벡터를 대괄호 세트로 묶어서 행렬로 변환 할 수 있습니다 ...
기존 벡터를 대괄호 세트로 묶어서 행렬로 변환 할 수 있습니다 ...
from numpy import * v=array([5,4]) ## create a numpy vector array([v]).T ## transpose a vector into a matrix
numpy에는 또한 행렬 클래스가 있습니다 (배열 대 행렬 참조) ...
matrix(v).T ## transpose a vector into a matrix
-
==============================
5.numpy 1D 배열 -> 열 / 행 행렬 :
numpy 1D 배열 -> 열 / 행 행렬 :
>>> a=np.array([1,2,4]) >>> a[:, None] # col array([[1], [2], [4]]) >>> a[None, :] # row, or faster `a[None]` array([[1, 2, 4]])
@ joe-kington이 말했듯이, None을 np.newaxis로 바꿀 수 있습니다.
-
==============================
6.1 차원 배열을 2 차원 열로 '변환'하려면 numpy.vstack을 사용할 수 있습니다.
1 차원 배열을 2 차원 열로 '변환'하려면 numpy.vstack을 사용할 수 있습니다.
>>> numpy.vstack(numpy.array([1,2,3])) array([[1], [2], [3]])
바닐라 목록에도 적용됩니다.
>>> numpy.vstack([1,2,3]) array([[1], [2], [3]])
-
==============================
7.2D 배열을 조 변경 만 할 수 있습니다. numpy.matrix를 사용하여 2D 배열을 만들 수 있습니다. 3 년이 지났지 만 지금 가능한 솔루션 세트에 추가하고 있습니다.
2D 배열을 조 변경 만 할 수 있습니다. numpy.matrix를 사용하여 2D 배열을 만들 수 있습니다. 3 년이 지났지 만 지금 가능한 솔루션 세트에 추가하고 있습니다.
import numpy as np m = np.matrix([2, 3]) m.T
-
==============================
8.전치
전치
x = [[0 1], [2 3]]
~이다.
xT = [[0 2], [1 3]]
코드는 다음과 같습니다.
x = array([[0, 1],[2, 3]]); np.transpose(x)
자세한 정보를 보려면 다음 링크를 클릭하십시오.
http://docs.scipy.org/doc/numpy/reference/generated/numpy.transpose.html
-
==============================
9.위에서 언급 한 의견 중 일부는 1D 배열의 조 변경은 1D 배열이므로 1D 배열을 조 변경하는 한 가지 방법은 배열을 다음과 같은 행렬로 변환하는 것입니다.
위에서 언급 한 의견 중 일부는 1D 배열의 조 변경은 1D 배열이므로 1D 배열을 조 변경하는 한 가지 방법은 배열을 다음과 같은 행렬로 변환하는 것입니다.
np.transpose(a.reshape(len(a), 1))
-
==============================
10.numpy에있는 함수의 이름은 column_stack입니다.
numpy에있는 함수의 이름은 column_stack입니다.
>>>a=np.array([5,4]) >>>np.column_stack(a) array([[5, 4]])
-
==============================
11.또 다른 해결책은 ....-)
또 다른 해결책은 ....-)
import numpy as np a = [1,2,4]
b = np.array([a]).T
-
==============================
12.대신 arr [:, None]을 사용하여 열 벡터를 만듭니다.
대신 arr [:, None]을 사용하여 열 벡터를 만듭니다.
-
==============================
13.[5,4]의 조옮김은 [5,4]입니다.
[5,4]의 조옮김은 [5,4]입니다.
추신 : 2D 매트릭스를 조 변경하는 간단한 방법이 있습니다.
zip(*a)
from https://stackoverflow.com/questions/5954603/transposing-a-numpy-array by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib 줄거리에서 내 xlabel이 왜 끊깁니까? (0) | 2018.10.06 |
---|---|
[PYTHON] 사전 키를 사용할 수없는 경우 없음 반환 (0) | 2018.10.06 |
[PYTHON] 파이썬에서 OpenSSL AES 암호화 파일을 해독하는 방법은 무엇입니까? (0) | 2018.10.06 |
[PYTHON] 파이썬 : 런타임시 메소드와 속성 변경하기 (0) | 2018.10.06 |
[PYTHON] 파이썬에서 콘솔 로깅을 비활성화하고 다시 활성화하는 방법은 무엇입니까? (0) | 2018.10.06 |