为什么从 WAV 文件导出的 CSV 文件比原始 WAV 文件大得多?
Why is a CSV file derived from a WAV file so much bigger than the original WAV file?
我使用了 read 函数 scipy.io.wavfile 然后是 numpy.array 和 numpy.savetxt 将 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。这怎么可能?我心目中单个向量应该更小?
np.savetxt()
会将以前紧凑的 int
或 float
表示的一系列数字转换为它们的 ASCII 表示。例如,np.savetxt('test.txt', np.arange(10), delimiter=",")
创建一个 250 字节的文本文件,如下所示:
0.000000000000000000e+00
1.000000000000000000e+00
2.000000000000000000e+00
...
假设每个数字最初都表示为 32 位浮点数,这表示从内存中的 40 个字节增加到 250 个字节的文本,或者比率为 6.25。
我使用了 read 函数 scipy.io.wavfile 然后是 numpy.array 和 numpy.savetxt 将 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。这怎么可能?我心目中单个向量应该更小?
np.savetxt()
会将以前紧凑的 int
或 float
表示的一系列数字转换为它们的 ASCII 表示。例如,np.savetxt('test.txt', np.arange(10), delimiter=",")
创建一个 250 字节的文本文件,如下所示:
0.000000000000000000e+00
1.000000000000000000e+00
2.000000000000000000e+00
...
假设每个数字最初都表示为 32 位浮点数,这表示从内存中的 40 个字节增加到 250 个字节的文本,或者比率为 6.25。