我已经使用波形模块从波形文件中读取样本,但它将样本作为字符串给出,它不在波形中,因此它是小端(例如,\x00
).
将此转换为python整数或numpy.int16类型的最简单方法是什么?(它最终将成为numpy.int16,所以直接进入那里很好).
代码需要适用于小端和大端处理器.
Ned*_*der 20
该struct
模块将打包数据转换为Python值,反之亦然.
>>> import struct
>>> struct.unpack("<h", "\x00\x05")
(1280,)
>>> struct.unpack("<h", "\x00\x06")
(1536,)
>>> struct.unpack("<h", "\x01\x06")
(1537,)
Run Code Online (Sandbox Code Playgroud)
"h"表示短整数或16位整数."<"表示使用little-endian.
Ale*_*lli 12
struct
是好的,如果你将一个或少数2个字节的字符串为整数,但array
和numpy
它本身是更好的选择.具体来说,numpy.fromstring(使用适当的dtype
参数调用)可以直接将字符串中的字节转换为数组(无论dtype
是什么).(如果numpy.little_endian
为false,则必须交换字节 - 请参阅此处以获取更多讨论,但基本上您需要byteswap
在刚刚构建的数组对象上调用该方法fromstring
).
归档时间: |
|
查看次数: |
13545 次 |
最近记录: |