본문 바로가기
파이썬

파이썬 Numpy Vector (N,1) dimension -> (N,) dimension conversion

by º기록 2021. 1. 12.
반응형

(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

 

 

반응형

댓글