[python] numpy에서 bytes로 변경하는 방법
numpy to bytes
tobytes method는 numpy 배열을 bytes로 변경하여 리턴합니다.
All Code
import numpy as np
arr = np.array([[0, 1], [2, 3]], dtype=np.uint8)
print(f'arr: {arr}')
b_arr = arr.tobytes()
print(f'tobytes: {len(b_arr)}, type: {type(b_arr)} , bytes: {b_arr}')
arr = np.array([[0, 1], [2, 3]], dtype=np.uint8)
print(f'arr: {arr}')
b_arr = arr.tobytes()
print(f'tobytes: {len(b_arr)}, type: {type(b_arr)} , bytes: {b_arr}')
# 출력
# arr: [[0 1]
# [2 3]]
# tobytes: 4, type: <class 'bytes'>, bytes: b'\x00\x01\x02\x03'
# arr: [[0 1]
# [2 3]]
# tobytes: 4, type: <class 'bytes'>, bytes: b'\x00\x01\x02\x03'
tobytes Option
order: 'C', 'F' / default 'C'
둘은 multidimensional arrays일 경우 메모리 할당 방법의 차이가 있습니다.
'C': Row-major order
'F': Column-major order
tobytes option code
arr = np.array([[0, 1], [2, 3]], dtype=np.uint8)
b_c_arr = arr.tobytes('C')
print(f'C, tobytes: {len(b_c_arr)}, type: {type(b_c_arr)}, bytes: {b_c_arr}')
b_f_arr = arr.tobytes('F')
print(f'F, tobytes: {len(b_f_arr)}, type: {type(b_f_arr)} bytes: {b_f_arr}')
print(f'C, tobytes: {len(b_c_arr)}, type: {type(b_c_arr)}, bytes: {b_c_arr}')
b_f_arr = arr.tobytes('F')
print(f'F, tobytes: {len(b_f_arr)}, type: {type(b_f_arr)} bytes: {b_f_arr}')
# 출력
# C, tobytes: 4, type: <class 'bytes'>, bytes: b'\x00\x01\x02\x03'
# F, tobytes: 4, type: <class 'bytes'> bytes: b'\x00\x02\x01\x03'
# C, tobytes: 4, type: <class 'bytes'>, bytes: b'\x00\x01\x02\x03'
# F, tobytes: 4, type: <class 'bytes'> bytes: b'\x00\x02\x01\x03'
bytes 할당 방법 차이를 확인할 수 있습니다.
참고문헌
댓글
댓글 쓰기