次のコードを使用して、24 ビット バイナリdata
を 16 ビットnumpy
配列にロードします。
temp = numpy.zeros((len(data) / 3, 4), dtype='b')
temp[:, 1:] = numpy.frombuffer(data, dtype='b').reshape(-1, 3)
temp2 = temp.view('<i4').flatten() >> 16 # >> 16 because I need to divide by 2**16 to load my data into 16-bit array, needed for my (audio) application
output = temp2.astype('int16')
速度効率を改善することは可能だと思いますが、どのように?