반응형
(N,) 차원 배열과 (N, 1) 차원 배열 간의 변환에 대한 질문이 있습니다. 예를 들어, y는 (2,) 차원입니다.
A=np.array([[1,2],[3,4]])
x=np.array([1,2])
y=np.dot(A,x)
y.shape
Out[6]: (2,)
그러나 다음은 y2가 (2,1) 차원임을 보여줍니다.
x2=x[:,np.newaxis]
y2=np.dot(A,x2)
y2.shape
Out[14]: (2, 1)
복사하지 않고 y2를 y로 다시 변환하는 가장 효율적인 방법은 무엇입니까?
감사, 톰
해결 방법
a = np.arange(3) # a.shape = (3,)
b = a.reshape((3,1)) # b.shape = (3,1)
b2 = a.reshape((-1,1)) # b2.shape = (3,1)
c = b.reshape((3,)) # c.shape = (3,)
c2 = b.reshape((-1,)) # c2.shape = (3,)
또한 reshape
는 새 모양에 필요한 경우가 아니면 데이터를 복사하지 않습니다 (여기에서 수행 할 필요 없음).
a.__array_interface__['data'] # (22356720, False)
b.__array_interface__['data'] # (22356720, False)
c.__array_interface__['data'] # (22356720, False)
참조 페이지 https://stackoverflow.com/questions/17869840
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python Socket Receive Large Amount of Data (0) | 2021.01.12 |
---|---|
파이썬 Finding Proper Nouns using NLTK WordNet (0) | 2021.01.12 |
파이썬에서 if / elif 문에 대한 대안은 무엇입니까? (0) | 2021.01.12 |
파이썬 Python에서 한 디렉터리 위로 이동 (0) | 2021.01.12 |
파이썬 목록의 모든 요소에 논리 연산자를 적용하는 방법 (0) | 2021.01.12 |
댓글