2017-04-18 86 views
0

我有一个文件,该文件是包含多维数组,该文件看起来像这样对象数组numpy的阵列

{'__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数组,但是当我检查输出的数据类型时,我仍然有对象。这里是代码我现在正在使用将数据转换为numpy数组,但输出仍然是对象。

import numpy as np 
import scipy.io 
data=scipy.io.loadmat('filename.mat') 
X= np.asarray(data) 
print(X.dtype)` 

我试图检查对象数组的形状,我得到()。我相信这应该是直接的,但我是一个新手,自学蟒蛇...任何想法将不胜感激。

+0

什么对象数组? – user2357112

+0

这不是一个对象数组。这是一个字典。一旦你在你的字典上调用'asarray',你只会得到一个对象数组,这个操作没有任何意义。如果你想从这个字典中获得数组,请为它编制索引。 – user2357112

+0

我用asarray转换成数组后,我得到的对象,但原来的文件是一个字典,就像我在我的问题的第一行所说@ user2357112 – dm5

回答

1

正如很多人指出的data是一本字典。如果你想提取'ecgdata'部分,你需要做的是:

ecg_data = data['ecgdata'] 
+0

这个工作@ Shishir Pandey – dm5