Я хочу отправить bytearray с помощью последовательного модуля. Элементы в bytearray - это типы данных с плавающей точкой, которые округлены и преобразуются в целые числа. По этой причине я использую numpy для повышения скорости, а не для собственных функций преобразования типов данных pythons. Проблема в numpy неверно представляет десятичные целые числа 9, 10 и 13 внутри bytearray. Я использую python 3.4.2 и numpy 1.9.2 для Windows 7 x64.Как исправить представление python модуля numpy в виде шестнадцатеричных чисел
Вот пример проблемы:
import numpy
>>> x = bytearray([])
>>> for i in range(20):
x.append(numpy.int16(i))
>>> x
bytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13')
десятичных чисел 9, 10, 13 становятся т, п, а г, когда они должны быть представлены как 0x09, 0x0A, 0x0D
Кроме того, вы говорите, что используете «numpy for speed efficiency», но на самом деле вы не похожи; Скорость numpy исходит из быстрых операций массива, и вы используете медленный цикл Python. Конечно, ваш реальный код может отличаться, но тот факт, что вы не использовали 'arange' с' dtype', заставляет меня подозревать иначе. – DSM