Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么从WAV文件派生的CSV文件比原始WAV文件大得多?_Python_Csv_Scipy_Wav - Fatal编程技术网

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

Python 为什么从WAV文件派生的CSV文件比原始WAV文件大得多?,python,csv,scipy,wav,Python,Csv,Scipy,Wav,我使用了scipy.io.wavfile中的read函数,后跟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=",")

我使用了scipy.io.wavfile中的read函数,后跟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的比率。

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的比率。

谢谢!这是有道理的。现在我只需使用
numpy.save
函数将其保存到
.npy
文件中。它仍然会增加数据大小,但比使用
numpy.savetxt
时要小3倍。谢谢!这是有道理的。现在我只需使用
numpy.save
函数将其保存到
.npy
文件中。它仍然会增加数据大小,但比使用
numpy.savetxt
时要小3倍。