NumPy - การสลับไบต์
เราได้เห็นแล้วว่าข้อมูลที่เก็บไว้ในหน่วยความจำของคอมพิวเตอร์นั้นขึ้นอยู่กับสถาปัตยกรรมที่ CPU ใช้ อาจเป็น endian น้อย (มีนัยสำคัญน้อยที่สุดจะถูกเก็บไว้ในที่อยู่ที่เล็กที่สุด) หรือ big-endian (ไบต์ที่สำคัญที่สุดในที่อยู่ที่เล็กที่สุด)
numpy.ndarray.byteswap ()
numpy.ndarray.byteswap() ฟังก์ชันสลับระหว่างการแสดงทั้งสอง: bigendian และ 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
มันจะให้ผลลัพธ์ดังต่อไปนี้ -
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']