Azure Zest

[ Python ] array에서 bytes로, bytes에서 array로 본문

Deep Learning

[ Python ] array에서 bytes로, bytes에서 array로

LABONG_R 2019. 8. 27. 14:55
numpy.ndarray.tobytes 

먼저 numpy array에서 bytes(raw contents)로 변환시켜주는 함수를 알아보자.

a 라는 배열이 이렇게 있었다고 하면, tobytes()를 실행시켰을 때 다음과 같은 결과가 나온다.

이와 같이 array를 raw data로 바꿔주고 싶으면 tobytes() 함수를 쓰면 된다.

바꾸고 싶은 array.tobytes()

 

 

numpy.frombuffer

개인적으로 위의 경우는 찾아보면 참고할 것들이 많이 나왔지만, 반대의 경우에서 유용한 함수를 잘 찾지 못했던 것 같다.

반대로 raw data에서 array로 값을 얻고 싶을때는 다음과 같이 frombuffer() 함수를 쓰면 된다.

위의 a 와 비교해보면 같은 값이 나오는 것을 확인할 수 있다.

np.frombuffer( 바꾸고 싶은 bytes , dtype = <자료형>)

 

이 때, 중요한 점은 raw data였기 때문에 array의 크기가 제대로 잡혀있지 않다는 점이다.

원하는 차원이나 크기를 맞추려면 나온 값에서 다시 reshape을 해주어야 한다.

 

Reference

tobytes()

numpy.frombuffer()