从IEEE32浮点到32位整数numpy数组(例如:audio.wav文件)

2024-09-29 17:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我读取了一些以IEEE32浮点形式存储在[-1, +1]间隔中的数据

A = numpy.fromstring(data, dtype = numpy.float32)

但我不想将数组保留为float32,而是作为32位整数(在[-2^31, +2^31-1]中)。在

我试着简单地做:

^{pr2}$

但结果却很糟糕。(可能是因为乘法常数或其他原因而错了?)在

如何将[-1,1]中的IEEE32 float数组读入[-2^31, +2^31-1]中的32位整数数组?


PS:这是可行的,但我想避免这种天真的做法:

A = numpy.fromstring(data, dtype = numpy.float32)
A *= 2^31    
A = int(A)   # convert the data type to int

如果可能的话,因为我想有一个更聪明的方法来做,不需要乘法,而是按位来做。。。


Tags: 数据numpydata间隔整数数组形式int

热门问题