[파이썬][Scipy] scipy.io 예제

scipy.io 모듈은 다양한 파일 형식의 데이터를 읽고 쓰는 데 사용됩니다. 아래는 scipy.io 모듈을 사용한 몇 가지 예제입니다.

MATLAB 파일 읽기 예제:

scipy.io.loadmat 함수를 사용하여 MATLAB 파일(.mat)에서 데이터를 읽을 수 있습니다.

mport scipy.io as sio

# MATLAB 파일 읽기
mat_data = sio.loadmat('data.mat')

# 데이터 확인
print(mat_data.keys())  # 변수 목록 출력
variable_name = 'my_variable'
if variable_name in mat_data:
    data = mat_data[variable_name]
    print(f"{variable_name} 변수 내용:")
    print(data)
else:
    print(f"{variable_name} 변수가 파일에 존재하지 않습니다.")

MATLAB 파일 쓰기 예제:

scipy.io.savemat 함수를 사용하여 데이터를 MATLAB 파일로 저장할 수 있습니다.

mport numpy as np
import scipy.io as sio

# 데이터 생성
data = np.array([[1, 2, 3], [4, 5, 6]])

# 데이터를 MATLAB 파일로 저장
sio.savemat('output_data.mat', {'my_variable': data})

WAV 오디오 파일 읽기 예제:

scipy.io.wavfile.read 함수를 사용하여 WAV 오디오 파일을 읽을 수 있습니다.

from scipy.io import wavfile

# WAV 오디오 파일 읽기
sample_rate, audio_data = wavfile.read('audio.wav')

# 샘플링 속도와 오디오 데이터 확인
print(f"샘플링 속도: {sample_rate} Hz")
print(f"오디오 데이터 크기: {audio_data.shape}")

WAV 오디오 파일 쓰기 예제:

scipy.io.wavfile.write 함수를 사용하여 오디오 데이터를 WAV 파일로 저장할 수 있습니다.

from scipy.io import wavfile
import numpy as np

# 가상의 오디오 데이터 생성
sample_rate = 44100  # 44.1 kHz
duration = 5  # 5 초
t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)
audio_data = np.sin(2 * np.pi * 440 * t)  # 440 Hz 사인 파형

# 오디오 데이터를 WAV 파일로 저장
wavfile.write('output_audio.wav', sample_rate, audio_data.astype(np.int16))

위의 예제들은 scipy.io 모듈을 사용하여 MATLAB 파일 및 WAV 오디오 파일을 읽고 쓰는 방법을 보여줍니다. 이 모듈을 사용하면 다양한 파일 형식의 데이터를 다룰 수 있습니다.