Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 16, 2010 09:53:48

Schubbe
От:
Зарегистрирован: 2010-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование типа массива (указателя)

Добрый день!
Для того, чтобы использовать некий массив данных как массив данных другого типа, на Си я могу написать:

unsigned char bytes[SIZE];
unsigned short* data = (unsigned short*)bytes;
unsigned short value = data[index];
Могу ли я нечто похожее проделать в Python, т.е. как мне преобразовать array('B') в array('H') ?



Офлайн

#2 Сен. 16, 2010 10:52:27

Schubbe
От:
Зарегистрирован: 2010-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование типа массива (указателя)

Вроде бы, можно так:

a = array.array('B', myList)
b = array.array('H', list(struct.unpack(str(a.buffer_info()[1] / 2) + 'H', a)))
value = b[index]
Можно ли еще как-то?



Отредактировано (Сен. 16, 2010 10:54:06)

Офлайн

#3 Сен. 16, 2010 13:52:39

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование типа массива (указателя)

вы про сам питон или про numpy?



Офлайн

#4 Сен. 16, 2010 15:11:16

Schubbe
От:
Зарегистрирован: 2010-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование типа массива (указателя)

В общем, все решается довольно просто через ctypes.Union.
Спасибо, тема закрыта.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version