問題タブ [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.

0 投票する
0 に答える
691 参照

python - numpy と pytables の問題 (エラー: タプル インデックスが範囲外)

私はpythonとpytablesが初めてです。現在、クラスタリングと KNN アルゴリズムに関するプロジェクトを書いています。それが私が持っているものです。

** * ** * ** * * コード * ** * ** * ** * ** * ****

step0: クラスターを取得する

step1: 結果を clst_fn.h5 という HDF5 ファイルに保存します。

step2: その他の機能

ブラブラ

step3: clst_fn からクラスターをロードする

#

step4: 別の関数 (knn と呼ばれる) を呼び出します。関数の入力引数は pnts からのデータです。knn 関数を個別に確認しました。この関数は、入力が pnts = npr.rand(100,128) の場合にうまく機能します。

#

clst_fn からのクラスターを使用して knn を呼び出す (ステップ 3 を参照)

** * ** * ** * * コードの終わり * ** * ** * ** * ** * ****

私の問題は、Pythonが次のように表示するのに苦労していることです: エラー: IndexError: タプルインデックスが範囲外です

明らかに、入力引数に何か問題があるに違いありません。問題を解決することについて何か考えはありますか? 前もって感謝します。

0 投票する
1 に答える
946 参照

python - Pytables EArray 作成用のアトムを定義する方法

numpy 再配列の 1 つの列に基づいて、実行時に Pytables EArray を作成しようとしています。createArray を使用している場合、再配列から抽出された numpy 配列を単純に渡すことができるため、これはうまくいくようです。ただし、 createEArray の場合、問題を引き起こしているアトムを定義する必要があります

この例では、MyRecArray は列の 1 次元配列を持つ recordarray であり、Myhdf5 は定義済みの Pytables ファイルであり、Mynode は EArray の葉がハングするファイル内の定義済みのグループです。

このコードを使用すると、エラーが発生します。

おそらく、配列時間に基づいて case ステートメントを使用してサブルーチンを記述し、アトムを返すことができますが、呼び出す代わりに、作成する配列型を渡すことでそのようなアトムを作成する一般的な方法があるかどうか疑問に思っていました「tables.atom.FloatAtom(....)」など、さまざまなデータ型の特定の関数

ありがとう

0 投票する
1 に答える
8630 参照

python - Python:パッケージ __init__ モジュールでグローバル変数を設定できますか?

だから私は他の質問に対するアレックス・マーテリの答えを読んでいます...

「初期化が必要な例の 1 つは、パッケージのロード時に大量のデータを (ファイル、DB、または Web などから) 一度だけ読み込みたい場合です。その場合は、はるかに優れています。個別の「初期化モジュール」を用意するのではなく、その読み取り値をパッケージのinit .py のプライベート関数に入れ、パッケージ内のすべての実際のモジュールからそのモジュールを冗長にインポートする...」

残念ながら、これを試すと:

foo/__init__.py

フー/バー/__init__.py

foo/バー/MyFunction.py


関数に入れずにグローバル変数を定義するにはどうすればよいですか (ここで見られるように)?

0 投票する
0 に答える
266 参照

java - PyTablesとnumexprのScalaまたはJavaアナログ

numexprとPyTables(特にtables.Expr)のScalaまたはJavaの類似物を探しています。これは、メモリ不足のデータに対してマトリックス操作を実行する必要があるマルチコアマシン上のマルチコア分析システム用です。特に、ライブラリは、ディスク、RAM、キャッシュ、CPU間のデータの移動を最適化する必要があります。スパース行列は効率的に処理する必要があります。ライブラリが対処する必要のある問題の種類の詳細については、http://www.youtube.com/watch ?v=J3-oN_TulTg およびhttps://www.google.com/search?q=altedのトップヒットを参照してください。 + cpu+starvation

この質問は表面的にはpyTablesと同等のScalaと同じですか? その質問は、pytablesのどの側面が重要であるかを指定しておらず、そこにある答えは私の問題には適切ではありません。

キャッシュ認識およびキャッシュ忘却アルゴリズムを処理するOTOHライブラリは、ある程度役立つ可能性があります。

「ScalaVirtualized」(別名言語仮想化)とStanford-PPL Deliteフレームワークは、私が探しているものがまだ存在しない場合、Scalaで必要なものを構築するための良い基盤になると思います。

Hadoop、MapReduce、グラフデータベース、および人気のあるnosqlストアのほとんどは、私が探しているものではありません。私が探しているのは技術的には一種のnosqlストアですが。

0 投票する
1 に答える
2143 参照

python - multiprocessing を使用して Python で複数の HDF5 ファイルを読み取る

PyTablesandを使用して、多数の HDF5 ファイル (「多数」は N > 1000 ファイルを意味します) を読み込もうとしていますmultiprocessing。基本的に、データを読み取って RAM に保存するクラスを作成します。シーケンシャル モードでは問題なく動作するので、並列化してパフォーマンスを向上させたいと考えています。

flatten()ファイルの読み取りを並列化するためにクラスに新しいメソッドを作成して、今のところダミーのアプローチを試みました。次の例は、私がやろうとしていることの単純化された例です。listf読み取るファイルの名前を含む文字列のリストであり、ファイルで読み取りnxたいny配列のサイズです。

さまざまなことを試しました (この単純な例で行ったようにmanager、データを取得するために a を使用するなど)、常にTypeError: an integer is required.

私は実際には共有配列を必要とせず (データを取得したいだけです)、データを取得した後、NumPy でそれを操作したいので、ctypes 配列は使用しません。

どんな考え、ヒント、または助けも大歓迎です!

編集:私が得る完全なエラーは次のとおりです:

0 投票する
1 に答える
872 参照

python - HDF5をpyTablesで動作させる際の問題

OSX 10.8でpyTablesをセットアップしようとして、壁に頭をぶつけてきました。Enthought pythonディストリビューションを実行し、pyTablesとnumexprをPIPとともにインストールし、Homebrewを使用してHDF5パッケージをインストールしました。

ただし、Pythonでテーブルをインポートしようとすると、次のエラーが発生します。

自作ディレクトリが上書きされているのではないかと思ったので、path変数を試してみましたが、そうではないようです。何が起こっているのかについて何かアイデアはありますか?

0 投票する
1 に答える
269 参照

python - SQL クエリを使用して pytable を埋める

Python で同等のデータセットを使用したいと思います。psycopg2 を使用してデータセットにデータを入力しcursor.fetchall()、このデータセットからの今後のすべてのクエリを入力したいと考えています。

pytables も同様の方法で使用できることを学びました。cursor.fetchall()私の質問は、行ごとのループなしの出力を使用して pytable オブジェクトを埋める方法ですか? また、pytablesでSQLのようなクエリを実行する方法は?

0 投票する
1 に答える
424 参照

python - PyTables を使用した HDF5 のネストされたイテレーション

HDF5 に保存し、PyTables を使用してアクセスするかなり大きなデータセットがあります。このデータセットに対して実行する必要がある操作の 1 つは、各要素間のペアごとの比較です。これには 2 つのループが必要です。1 つは各要素を反復するループで、内側のループは他のすべての要素を反復するループです。したがって、この操作では N(N-1)/2 の比較が行われます。

かなり小さいセットの場合、内容を多次元のnumpy配列にダンプしてから反復を行う方が高速であることがわかりました。メモリの問題が原因で大規模なセットで問題が発生し、実行時にデータセットの各要素にアクセスする必要があります。

要素を配列に入れると、1 秒あたり約 600 回の比較が行われますが、hdf5 データ自体を操作すると、1 秒あたり約 300 回の比較が行われます。

このプロセスをスピードアップする方法はありますか?

例は次のとおりです(これは私の実際のコードではなく、単なる例です):

スモールセット

大型セット:

0 投票する
1 に答える
1486 参照

python - PyTables /HDF5KERNEL32.dllエラー

最近、Python2.7.2を使用してWindowsXPにHDF51.8.9とPyTables2.4.0をインストールしました。以下は、PyPI(利用可能な場合)またはhttp://www.lfd.uci.edu/~gohlke/pythonlibsのバイナリからインストールされています。 /(そうでない場合)

  • Numpy1.6.1スーパーパック
  • numexpr 1.4.2
  • Cython 0.17.3
  • scipy0.10.0rc1スーパーパック
  • matplotlib 1.1.1

テーブルをインポートすると、モジュールはインポートされますが、次のエラーが発生します

"The procedure Entry point InitOnceExecuteOnce could not be located in the dynamic link library KERNEL32.dll."

MSDN.comによると、この機能はWindowsVista以降でのみ使用できます。最新のHDF5バイナリ(2.8.10)がWindows 7でビルドされたことは知っています。hdfgroup.orgによると、Windows XPで動作させるには、ソースからビルドする必要がありますが、バージョン2.8.9のバイナリはXP。また、PyTablesのすべての依存関係は問題なくインポートされるため、問題はHDF5ライブラリにあるようです。ソースからHDF5ライブラリをビルドせずにこれを修正するにはどうすればよいですか?

0 投票する
0 に答える
151 参照

full-text-search - ログ検索用のテキストベースのデータベース?

会社で大量の多次元ログ データを扱っています。大量のデータがあり、検索クエリを作成すると (つまり、いくつかの日付の間など、それほど単純なクエリではない)、効率的な時間がかかるため、テキスト データベースからデータを非常に高速に保存および取得する必要があります。

ここに私のポイントがあります:

  • Luceneを使用していますが、要件を満たしていません。

  • SQL ベースのデータベースは使用しません。大量のログ データを保存し、この状況でクエリを実行するには過剰なためです。

  • 必要に応じて、ログ検索にNoSQL データベースを使用したくありません。テキストベースのデータベースが必要です。

Pytablesを使用したいのですが、私の質問は、ログすばやく保存して検索するシステムが他にあるかどうかを知りたいということです。