問題タブ [pytables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pytablesを使用して列のサブセットを選択する最もエレガントな方法は何ですか?
pytablesに300以上の列があるデータセットがあり、さまざまなサブセットを簡単に選択できるようにしたいと考えています。これに対する非常にエレガントな解決策はないようです、または私が欠けているものがありますか?
また、元のテーブルから選択した列をエイリアシングするだけの別のテーブルを作成する方法にも満足しているので、メインテーブルとサブセットティーブルを作成できます。それを行う方法はありますか?
python - PyTablesとSQLite3の挿入速度
Kibotの株価データを購入しましたが、膨大です。ロードする行が約125,000,000行あります(1000株* 125k行/株[2010-01-01以降の1分間のバーデータ]、各株は、Date、Time、Open、High、Low、Close、音量)。私はPythonにまったく慣れていません(無料でコミュニティによって十分にサポートされているため、これを選択しました)。Pythonの組み込みサポートのため、データの保存にSQLiteを選択しました。(そして私はSQL言語をよく知っています。SQLiteStudioは無料のプログラムの宝石です。)
私のローダープログラムはうまく機能していますが、遅くなっています。SQLiteデータベースは約6Gbで、半分しかロードされていません。INSERTステートメントを使用して約500k行/時間をロードし、各在庫(約125k行)の後にトランザクションをコミットしています。
だからここに質問があります:PyTablesはSQLiteよりも大幅に高速であり、それを使用する価値がある方法を学ぶ努力をしていますか?(そして私は学習モードにいるので、これら2つの代替案を自由に提案してください。)PyTablesについて私を悩ませていることの1つは、無料バージョンでは、バイナリファイルを保存するのとほとんど同じように、本当に骨の折れることです。「where句」関数やインデックス付けはないため、必要な行をスキャンすることになります。
データを読み込んだ後、NumPyに基づく統計分析(ローリング回帰と相関など)を実行します:時系列、ラリー、パンダ、またはscikit。分析パッケージはまだ選択していません。推奨事項があり、その推奨事項がPyTablesまたはpandas(またはその他)のいずれかで最適に使用される場合は、それを考慮して応答してください。
(@Johnの場合)Python 2.6;
Windows XPSP332ビット;
INSERTステートメントとして使用される製造された文字列。
メモリ使用量は、2G物理メモリの750Mで堅実です。
CPU使用率は10%+/- 5%です。
完全にI/Oバウンド(ディスクは常にクランチです)。
DBスキーマ:
python - database.numcols!= newdata.numcols?であるテーブル(HDF5)データベースに大量のデータを追加します。
大きなデータセット(> 30Gb)を既存のpytablesテーブルに追加しようとしています。テーブルはN列で、データセットはN-1列です。1つの列は、他のN-1列を知った後に計算されます。
numpy.fromfile()
データベースに追加する前に、データセットのチャンクをメモリに読み込むために使用しています。理想的には、データをデータベースに貼り付けてから、最後の列を計算し、を使用Table.modifyColumn()
して操作を完了します。
numpy.zeros((len(new_data), N))
テーブルに追加してからTable.modifyColumns()
、新しいデータを入力するために使用することを検討しましたが、追加する必要のあるチャンクごとに空のデータの巨大な配列を生成しないようにするための良い方法を誰かが知っていることを願っています。
python - Numpy と PyTables での浮動小数点例外
クラスターで読み取ろうとしている PyTables によって生成されたかなり大きな HDF5 ファイルがあります。個々のチャンクを読み込んでいるときに、NumPy で問題が発生しています。例を見てみましょう:
HDF5 ファイル内の配列の全体形状は、
この配列の各エントリはnp.float64
.
各ノードに size のスライスを読み取らせています(21933063,10,3)
。残念ながら、NumPy は 2100 万のサブスライスを一度にすべて読み取ることができないようです。これらのスライスを 10 個のスライスに分割し(2193306,10,3)
、次の reduce を使用して動作させることで、これを順番に実行しようとしました。
どこ1 <= k <= 10
とchunksize = 2193306
。このコードはk <= 9
; それ以外の場合は、次のようになります。
Valgrind のmemcheck
ツールを使用して何が起こっているのかを調べてみましたが、PyTables が原因のようです。トレースに表示される 2 つの主なファイルはlibhdf5.so.6
、 と に関連するファイルですblosc
。
また、私が持っている場合k=8
、私は得ることに注意してください:
しかし、最後のサブスライスを追加すると、次のようになります。
何をすべきか考えている人はいますか?ありがとう!
python - psycopg を使用した挿入の問題
Pytables モジュールを使用して .mat ファイルからデータを読み取っています。データを読み取った後、psycopg を使用してこのデータをデータベースに挿入したいと考えています。サンプルコードは次のとおりです。
次のエラーが表示されます。
誰かがこれに対する回避策を提案できれば素晴らしいことです。ありがとう!
python - HDF5ファイルとPyTablesファイルの違い
HDF5
ファイルとによって作成されたファイルに違いはありますPyTables
か?
PyTables
には2つの機能があり、2つの形式に違いがあることを示唆しています.isHDFfile()
。.isPyTablesFile()
Googleで調べてみたところ、PyTablesはHDFの上に構築されていることがわかりましたが、それ以上のものを見つけることはできませんでした。
私は特に相互運用性、速度、オーバーヘッドに興味があります。
ありがとう。
scala - pyTablesに相当するScala?
pyTablesが提供するものと同様に、Scala で少し支援を探しています。PyTables は、階層的なデータセットを管理するためのパッケージであり、非常に大量のデータを効率的かつ簡単に処理できるように設計されています。
助言がありますか?
python - mac os lionでpytablesを構築する
Mac lionでpytables 2.3.1をビルドしようとしていますが、次のエラーに直面しました:
tsf-wpa-3-6133:tables-2.3.1 Hesam$ python setup.py build * numpy 1.5.1 パッケージがインストールされていることがわかりました。* numexpr 1.4.2 パッケージがインストールされていることがわかりました。* Cython 0.15.1 パッケージがインストールされていることがわかりました。.. エラー:: ローカルの HDF5 インストールが見つかりませんでした。
HDF5_DIR
環境変数を設定するか、--hdf5
コマンドライン オプションを使用して、ローカルの HDF5 ヘッダーとライブラリが見つかる場所を明示的に指定する必要がある場合があり ます。
何が解決策か知っていますか?
ありがとう。
python - Pythonでテーブルをインポートする際のエラー
Windows 32ビットの下にpython 2.6、numpy 1.6.1、tables 2.3.1 y numexpr 2.0をインストールしました。ただし、インポートテーブルには次のエラーが表示されます。
python - pytablesを使用して巨大なnumpy配列を構築する
pytablesを使用して巨大なnumpy配列を作成するにはどうすればよいですか。これを試しましたが、「ValueError:配列が大きすぎます」と表示されます。エラー: