私はMatLabファイルを読むためにpython w/scipyパッケージを使用しています。PythonでのMatLabファイルの読み込み
ただし、時間がかかりすぎてクラッシュします。
Datasetはサイズ
で約50〜MBのデータを読み込み、エッジリストを形成するために任意のより良い方法はありますか?
私のpythonコード
import scipy.io as io
data=io.loadmat('realitymining.mat')
print data
私はMatLabファイルを読むためにpython w/scipyパッケージを使用しています。PythonでのMatLabファイルの読み込み
ただし、時間がかかりすぎてクラッシュします。
Datasetはサイズ
で約50〜MBのデータを読み込み、エッジリストを形成するために任意のより良い方法はありますか?
私のpythonコード
import scipy.io as io
data=io.loadmat('realitymining.mat')
print data
私は解凍した後、それを読み込むことができます。しかし、それは記憶を伸ばしている。
私はoctave
でそれをロードしようとすると、私が得る:Ipython
In [10]: data.keys()
Out[10]: ['network', 's', '__version__', '__header__', '__globals__']
In [14]: data['__header__']
Out[14]: 'MATLAB 5.0 MAT-file, Platform: MACI, Created on: Tue Sep 29 20:13:23 2009'
In [15]: data['s'].shape
Out[15]: (1, 106)
In [17]: data['s'].dtype
Out[17]: dtype([('comm', 'O'), ('charge', 'O'), ('active', 'O'), ('logtimes', 'O'),...
('my_intros', 'O'), ('home_nights', 'O'), ('comm_local', 'O'), ('data_mat', 'O')])
# 58 fields
In [24]: data['s']['comm'][0,1].shape
Out[24]: (1, 30)
In [31]: data['s']['comm'][0,1][0,1]
Out[31]: ([[732338.8737731482]], [[355]], [[-1]], [u'Packet Data'], [u'Outgoing'],
[[40]], [[nan]])
In [33]: data['s']['comm'][0,1]['date']
Out[33]:
array([[array([[ 732338.86915509]]), array([[ 732338.87377315]]),
...
array([[ 732340.48579861]]), array([[ 732340.52778935]])]], dtype=object)
で
octave:1> load realitymining.mat
error: memory exhausted or requested size too large for range of Octave's index type -- trying to return to prompt
は、作品を見てください。単にprint data
またはprint data['s']
にしようとすると時間がかかります。明らかに素早くフォーマットするには構造が大きすぎます。
このデータを実際に取得するには、PythonまたはMatlabで一度読み込み、有用な部分を1つ以上のファイルに保存することをお勧めします。
おそらく最初にstructのnetwork
として彼のデータの一部を処理することができます。私はそれをhere MATLABを使って解凍しました。
残りの大きな構造体を整理する方法についてはまだ作業中です。
あなただけ例えば、異なるテキストファイルに構造体の各フィールドを救うことができる:
save('friends.txt', '-struct', 'network', 'friends', '-ascii')
とPython
即座にロードfriends = numpy.loadtxt('friends.txt')
とは別に、各ファイルをロードします。
どのようなエラーメッセージが表示されますか? – Daniel
エラーはありません。ちょうどそれには多くの時間がかかります。 –
あなたの質問は、 "それはクラッシュする"と言います。 – Daniel