Обычно у меня есть байтаррей с кусочками по 4 байта каждый (поэтому, когда я хочу разделить его на несколько Uint32 позже). Иногда Bytearray представляет собой кусок по 3 байта каждый, который не может быть передано так легко в функции. Я хочу добавить «пустой» байт после каждого 3 -го байта в Bytearray (эффективно, так как существует около 1000 000 байт) < /p>
Краткосрочная проблема в настоящее время: < /p>
data #(bytearray, data is either chunks of 3 bytes each or 4 bytes each)
if buffer_size == 3: # already known
pass # here it should extend the smaller bytearray with one empty byte
new_array = np.frombytes(data, dtype=np.uint32) # work normal with 4 bytes, fails with 3 bytes
val1, val2 = new_array//256, new_array%256
< /code>
В настоящее время я полностью избегаю проблемы, разделяя байторрей на строки, но она работает довольно медленно: < /p>
new_array = np.array(data.hex(" ", buffer_size).upper().split(" "))
new_array = np.vectorize(int)(new_array, 16)
Подробнее здесь: https://stackoverflow.com/questions/797 ... nto-chunks
Эффективно расширить расщепление байтона на куски? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение