4

大量の数値/テキストデータを操作する必要があります。たとえば、理論的には10000*1000テーブルの1000として編成できる合計100億のエントリです。ほとんどの計算は、データの小さなサブセット(特定の行または列)に対して毎回実行する必要があるため、一度にすべてのデータが必要になることはありません。

したがって、私はある種のデータベースにデータを保存することに興味があり、データベースを簡単に検索し、定義された基準に一致する複数の行/列を取得し、計算を行い、データベースを更新できます。データベースには、PythonとMatlabの両方でアクセスできる必要があります。ここでは、主に生データを作成し、それをデータベースに入れてデータ処理のためにMatlabに入れるためにPythonを使用しています。

プロジェクト全体がWindows7で実行されます。この目的で使用できる、主に最も単純なデータベースはどれですか。私はデータベースの経験がまったくありません。

4

3 に答える 3

7

SQLiteをお勧めします。デフォルトのPythonインストールには、すでにバインディングがあります。

使用するには、適切なSQLiteWindowsインストーラーをインストールします。

データベースを作成するには、(sqlite3のドキュメントから)次のようなことを行うことができます。

import sqlite3

conn = sqlite3.connect('example.db')

c = conn.cursor()

# Create table
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

# Save (commit) the changes
conn.commit()

# We can also close the cursor if we are done with it
c.close() 

また、Matlabにインポートするには、mksqliteを使用できます。

詳細については、チェックアウトすることをお勧めします:http: //labrosa.ee.columbia.edu/millionsong/pages/sqlite-interfaces-python-and-matlab

于 2012-06-15T21:32:33.520 に答える
3

IMOは、MATLABとPythonの両方で読み取り/書き込みが可能なファイル形式のファイルシステムを使用するだけです。データベースは通常、リレーショナルモデル(SQLなしのモデルを除く)を意味しますが、これはここで複雑さを増すだけです。

よりMATLABに傾倒しているため、scipy.io.loadmat/scipy.io.savemat関数を使用してSciPyのMATファイルを直接操作できます。saveこれは、 /load関数を使用してデータを格納するためのネイティブMATLAB形式です。

もちろん、本当にデータベースが必要な場合を除いて、私の答えは無視してください:)

于 2012-06-15T21:41:02.380 に答える
2

SQLiteのセットアップは簡単ですが、MySQLには問題はありませんでした。使用可能なコネクタがあり、非常にシームレスに動作します。

http://www.mathworks.com/matlabcentral/fileexchange/8663-mysql-database-connector

私は同様のプロジェクトを実行しており、Matlabを使用してフェッチと分析を行い、RubyonRailsを使用して多くの株式市場データを公開しています。非常に大きなデータセットを使用すると、このソリューションはうまく機能するようです。歴史的に、SQLite3は、大規模なデータセットに対してMySQLやPostgreSQLほどパフォーマンスが良くないため、切り替えることをお勧めします。

于 2012-06-16T20:06:59.780 に答える