Python 对象数组到numpy数组
我有一个文件,它是一个包含多维数组的字典,文件的一部分如下所示Python 对象数组到numpy数组,python,matlab,numpy,scipy,Python,Matlab,Numpy,Scipy,我有一个文件,它是一个包含多维数组的字典,文件的一部分如下所示 {'__globals__': [], 'ecgdata': array([[[ 0.64927447, -6.9518466 , -2.01598597, ..., 6.0144043 ,14.82659912, 9.60320473]], [[-10.91237354, -10.82145023, 5.33286715, ...,7.53680801,10.95550919, 7.916859
{'__globals__': [], 'ecgdata': array([[[ 0.64927447, -6.9518466 , -2.01598597, ..., 6.0144043 ,14.82659912, 9.60320473]],
[[-10.91237354, -10.82145023, 5.33286715, ...,7.53680801,10.95550919, 7.91685963],[-15.30590725, 5.42344713, -13.84104443, ..., 10.68752861,7.95283413, 0.47035939]],[[-13.26809025, -11.63397312, 15.1417799 , ..., 4.38294888,9.83382416, 8.45503426],...,[-14.91312885, 11.75222111, -11.65044498, ..., 6.97022438,10.74245644, -2.57275534]],..., [[-10.96194077, -9.53885269, 5.87950087, ..., 5.83128738,5.32846308, 11.16324234],[-11.92566872, 8.81869507, -11.59397984, ..., 5.50253582,10.94230938, -1.49227607]],[[ -5.74656582, 0.27805901, -3.73075247, ..., 0.96725273,2.3064785 , 4.91951847],[ -3.15279818, -1.82596517, -1.49705577, ..., 3.69363403,4.91635323, -6.07875967]],[[ -9.50158024, 8.16193676, 4.33013773, ..., 6.0825882 ,-11.67652321, 1.97953737],[ 5.58597708, 2.6614821 , 2.63657999, ..., -19.56603241,-2.59806776, 0.98835891]]], dtype=float32)}
我想把这个对象数组转换成numpy数组,因此,我可以打印形状并知道每个维度的维度和大小。我尝试提取字典中的项目并转换为numpy数组,但在检查输出的数据类型时,我仍然有object。下面是我现在用来将数据转换为numpy数组的代码,但输出仍然是object
import numpy as np
import scipy.io
data=scipy.io.loadmat('filename.mat')
X= np.asarray(data)
print(X.dtype)`
我已经试过检查对象数组的形状,我得到()。我相信这应该是直接的,但我是一个新手,自学python…任何想法都会受到欢迎。正如许多人指出的那样,
数据是一本字典。如果要提取“ecgdata”部分,只需执行以下操作:
ecg_data = data['ecgdata']
什么对象数组?这不是对象数组。这是一个dict。在dict上调用asarray
后,只会得到一个对象数组,这是一个毫无意义的操作。如果你想从这个dict中得到数组,就给它编索引。我在用asarray转换成数组后得到了这个对象,但是原始文件是一个字典,正如我在我的question@user2357112Have您查看了数据
loadmat
创建一个包含标题信息以及保存在MATLAB中的变量的字典。MATLAB矩阵加载为np.array
(顺序为“F”),但单元格和结构将有一层或多层对象
数据类型数组包装。演示一个loadmat