2016-12-07 6 views
1

나는 이 CSV에 저장된 벡터로 WAV 파일을 변환 할 수 numpy.arraynumpy.savetxt 다음 scipy.io.wavfile 에서 기능을 읽을 사용했습니다. 예 :왜 원래 WAV 파일보다 훨씬 큰 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뿐입니다. 어떻게 가능합니까? 하나의 벡터가 내 마음에 더 작아야합니까?

답변

4

np.savetxt()은 이전에 일련의 숫자로 표시된 int 또는 float 표현을 ASCII 표현으로 변환합니다. 250 바이트의 메모리에 40 바이트의 증가를 나타낼 것이다

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

원래 32 비트 부동 소수점으로 표현 된 각각의 숫자를 가정하면, 예를 들어, np.savetxt('test.txt', np.arange(10), delimiter=",")처럼 보이는 250 바이트의 텍스트 파일을 생성 의 텍스트 또는 6.25의 비율.

+0

감사합니다. 그건 의미가 있습니다. 이제'numpy.save' 함수를 사용하여 그것을'.npy' 파일에 저장합니다. 여전히 데이터 크기는 증가하지만 numpy.savetxt를 사용할 때보 다 3 배 더 작습니다. –