gpt4 book ai didi

python - 将Matlab数据文件读入Python,需要导出为CSV

转载 作者:太空狗 更新时间:2023-10-29 21:28:59 27 4
gpt4 key购买 nike

我已经将包含大量数组的 Matlab 文件作为数据集读取到 Python 中,使用以下命令将 Matlab 字典存储在变量名 mat 下:

mat = loadmat('Sample Matlab Extract.mat')

有没有一种方法可以使用 Python 的写入 csv 功能将我读入 Python 的这个 Matlab 字典变量保存为逗号分隔文件?

with open('mycsvfile.csv','wb') as f:
w = csv.writer(f)
w.writerows(mat.items())
f.close()

创建一个 CSV 文件,其中一列包含字典中的数组名称,然后另一列包含每个对应数组的第一个元素。有没有办法利用类似于此的命令来获取“垫”字典变量内数组中的所有对应元素?

最佳答案

函数 scipy.io.loadmat 生成一个看起来像这样的字典:

{'__globals__': [],
'__header__': 'MATLAB 5.0 MAT-file, Platform: MACI, Created on: Wed Sep 24 16:11:51 2014',
'__version__': '1.0',
'a': array([[1, 2, 3]], dtype=uint8),
'b': array([[4, 5, 6]], dtype=uint8)}

听起来您想要做的是制作一个 .csv 文件,其中键“a”、“b”等作为列名,并将它们对应的数组作为与每一列关联的数据。如果是这样,我会建议使用 pandas 来制作格式良好的数据集,该数据集可以导出到 .csv 文件。首先,您需要清除字典中的注释成员(所有以“__”开头的键)。然后,您想将字典中的每个项目值转换为 pandas.Series 对象。然后可以将字典转换为 pandas.DataFrame 对象,也可以将其保存为 .csv 文件。您的代码将如下所示:

import scipy.io
import pandas as pd

mat = scipy.io.loadmat('matex.mat')
mat = {k:v for k, v in mat.items() if k[0] != '_'}
data = pd.DataFrame({k: pd.Series(v[0]) for k, v in mat.items()}) # compatible for both python 2.x and python 3.x

data.to_csv("example.csv")

关于python - 将Matlab数据文件读入Python,需要导出为CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com