首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python语言中打开.mat文件的子部分

在Python语言中打开.mat文件的子部分
EN

Stack Overflow用户
提问于 2020-05-02 03:51:29
回答 1查看 50关注 0票数 1

背景:我正在和一位教授合作将一些MatLab脚本转换成python (同时学习python ),所以我为我的粗鲁道歉。

我正在尝试用python读取.mat文件。下面是我的示例代码;

代码语言:javascript
复制
import numpy as np
from scipy.io import loadmat

isochrones = loadmat('isochrones.mat')

现在这个.mat文件包含了一个1x1结构的变量'isoc‘。在该变量内部还有两个结构,'e8‘和'e9’。

我在进入'e8‘和'e9’小节时遇到了问题。它们被更多的1x1变量填充,这些变量包括更多,以此类推。

代码语言:javascript
复制
isoc = isochrones['isoc']
e8 = isoc['e8']
e9 = isoc['e9']

我能够走到这一步,但在那之后我就卡住了。当我打印出'e9‘的内容时,它列出了其中的所有数据值,还打印了其中包含的dtype,其中可以看到'e9’变量中的文件。

这是一个包含.mat文件的谷歌驱动器链接:https://drive.google.com/open?id=1kpZsHBtWll-HMd28zQ12L8v1ahWClCaM

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 04:13:54

我已经看过.mat文件了:

e8[0][0][0][0][0]对应于isoc.e8.one:即[[B], [V], [logage]]

e8[0][0][0][0][1]对应于isoc.e8.two:即[[B], [V], [logage]]

e8[0][0][0][0][0][0][0][0]将提取isoc.e8.one.B,即[14.591, ..., -1.415]

e8[0][0][0][0][0][0][0][1]将提取isoc.e8.one.V,即[13.014, ..., -2.990]

e8[0][0][0][0][1][0][0][0]将提取isoc.e8.two.B,即[14.590, ..., 0.818]

根据@hpaulj所说的,并结合我列出的列表进行了一些研究:

代码语言:javascript
复制
import pandas as pd
from scipy.io import loadmat
import itertools
isochrones = loadmat('isochrones.mat')

isoc = isochrones['isoc']

e8 = isoc['e8']
e9 = isoc['e9']

keys = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

e8_dict = {}
e9_dict = {}
for i in range(len(keys)):
    e8_dict[keys[i]] = [list(itertools.chain.from_iterable(j)) for j in e8[0, 0][0, 0][i][0, 0]]
    e9_dict[keys[i]] = [list(itertools.chain.from_iterable(k)) for k in e9[0, 0][0, 0][i][0, 0]]


e8_df = pd.DataFrame.from_dict(e8_dict, orient='index', columns=['B', 'V', 'logage'])

e9_df = pd.DataFrame.from_dict(e9_dict, orient='index', columns=['B', 'V', 'logage'])

因此,可以使用e8_df.loc['one']访问isoc.e8.one的数据,使用返回B数据数组的e8_df.loc['one']['B']访问isoc.e8.one.B的数据。

下图显示了e8_df的打印输出

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61549747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档