2017-04-18 69 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