Byte Swapping using Numpy

Byte Swapping using Numpy

We have seen that the data stored in the memory of a computer depends on which architecture the CPU uses. It may be little-endian (least significant is stored in the smallest address) or big-endian (most significant byte in the smallest address).

numpy.ndarray.byteswap()

The numpy.ndarray.byteswap() function toggles between the two representations: bigendian and little-endian.

import numpy as np
a = np.array([1, 256, 8755], dtype = np.int16)
print( 'Our array is:')
print (a)
print( 'Representation of data in memory in hexadecimal form:')
print( map(hex,a))
# byteswap() function swaps in place by passing True parameter
print( 'Applying byteswap() function:')
print( a.byteswap(True))
print( 'In hexadecimal form:')
print( map(hex,a))
# We can see the bytes being swapped

It will produce the following output −

Our array is:
[1 256 8755]
Representation of data in memory in hexadecimal form:
['0x1', '0x100', '0x2233']
Applying byteswap() function:
[256 1 13090]
In hexadecimal form:
['0x100', '0x1', '0x3322']
Sort, Search & Counting Functions using Numpy (Prev Lesson)
(Next Lesson) Copies & Views using Numpy
', { 'anonymize_ip': true });