.mat文件读取,转换为numpy
时间: 2025-03-03 07:25:28 浏览: 47
使用 Python 读取 .mat 文件并转换为 NumPy 数组
方法一:使用 scipy.io
模块
对于大多数 .mat
文件版本(V7.3 之前),推荐使用 SciPy 库中的 loadmat
函数来加载 MATLAB 数据文件[^1]。
from scipy import io as spio
def load_mat_file_scipy(file_path):
# 加载.mat文件
mat_data = spio.loadmat(file_path)
# 将特定变量转换为NumPy数组
variable_name = 'your_variable' # 替换为实际的变量名
np_array = mat_data[variable_name]
return np_array
这种方法简单易用,适用于标准格式的数据结构。然而,如果遇到 V7.3 版本之后的大规模或复杂类型的 .mat
文件,则可能需要采用其他方法处理[^2]。
方法二:针对大型或多维数据集使用 h5py
库
当面对更复杂的 .mat
文件时,特别是那些由较新版本的 MATLAB 创建且包含大量数据的情况,建议利用专门设计用于访问 HDF5 格式的 h5py 工具包[^3]。
import h5py
import numpy as np
def load_large_mat_file_h5py(file_path):
with h5py.File(file_path, 'r') as f:
# 获取根级别的键列表
keys = list(f.keys())
# 假设第一个键对应所需的数据对象
dataset_key = keys[0]
data = f[dataset_key][:]
return np.array(data)
此方式能够有效应对大尺寸以及多维度的数据存储需求,并支持更多高级特性如压缩等功能[^4]。
无论选择哪种方案,在具体操作前都应先确认目标 .mat
文件的具体情况及其内部结构特点,以便选取最合适的解析手段。
相关推荐



















