【发布时间】:2016-07-02 00:10:49
【问题描述】:
我对 python 环境有些陌生,我正在将现有的 MATLAB 程序转移到 Python 中。我导入了一个 .mat 文件,其中包含四个我感兴趣的字段,其中一个包含 11340x1、11340x7 和 11340x8 数组的 14 个子字段以及一些气象数据字符串。我已使用
成功导入数据import scipy.io as sio
import scipy
MATfile = sio.loadmat(E:/JP/Meadowdata.mat)
现在我想将这些数组/字符串放入变量中以在 Python 中使用。我开始了
datagroup = MATfile['MAIN'] #for MAIN field
T = datagroup['T'] #for Temp.
P = datagroup['P'] #for Precip....
其他数组以此类推。我希望将这些数组用于其中的值并查找数组的长度。但是,当我尝试找到长度时,它们总是以 1 而不是 11340 的长度返回,当我打印它们时,它看起来像这样
[[array([[-5.55555556],
[-5.55555556],
[-5.55555556],
...,
[ 9.879 ],
[ 8.17 ],
[ 6.051 ]])]]
我注意到有些人以这种方式循环并提取值,但在我的情况下这将是太多的数据/时间,而且它似乎无论如何都不起作用。有什么方法可以获取这些数据?
谢谢, 杰马特
【问题讨论】:
-
如果让
T = datagroup['T'][0][0]和P = datagroup['P'][0][0]然后检查它们的长度呢? -
这些数组的
.shape和.dtype是什么?.shape等同于size。numpy数组可能是 0 维的。 -
可能重复:stackoverflow.com/questions/37996883/…。让我知道这是否有帮助。
-
您是否尝试过
squeeze_me的loadmat参数?