为什么从WAV文件派生的CSV文件比原始WAV文件大得多?

时间:2016-12-07 08:50:19

标签: python csv scipy wav

我使用了 scipy.io.wavfile 中的 read 函数,后跟 numpy.array numpy.savetxt < / em>将WAV文件转换为CSV格式的矢量。像这样:

def read_wav(wav_file_name):
    a = read('data/'+wav_file_name)
    b = numpy.array(a[1],dtype=float)
    numpy.savetxt('data/'+wav_file_name+'.csv', b, delimiter=",")
    return b

但是,CSV文件现在为6.2MB,而WAV文件仅为490kB。怎么可能?在我看来,单个矢量应该更小?

1 个答案:

答案 0 :(得分:4)

np.savetxt()会将之前的一系列数字的紧凑intfloat表示形式转换为它们的ASCII表示形式。例如,np.savetxt('test.txt', np.arange(10), delimiter=",")创建一个250字节的文本文件,如下所示:

0.000000000000000000e+00
1.000000000000000000e+00
2.000000000000000000e+00
...

假设每个数字最初都表示为32位浮点数,则表示从内存中的40个字节增加到250个字节的文本,或者比率为6.25。