3

モジュールを使用して、ピクルス化され、MongoDB に保存されている NumPy 配列がいくつかありbsonます。たとえば、xが NumPy 配列の場合、MongoDB レコードのフィールドを次のように設定します。

bson.binary.Binary(x.dumps())

x私の質問は、を介してアレイ全体をリロードせずに、アレイのサブセットを回復できるかどうかnp.loads()です。まず、どうすれば MongoDB にバイナリ配列のチャンクだけを返すようにさせることができますか。次に、そのチャンクを NumPy 配列に変換するにはどうすればよいでしょうか。ここで、次元やデータ型など、配列に関するすべての NumPy メタデータも既に持っていることに言及する必要があります。

具体的な例としては、データ型のサイズ (100000,10) の 2 次元配列がありnp.float64x[50,10].

4

2 に答える 2

0

確かなことは言えませんが、BSON C++の API ドキュメントを確認すると、部分的な取得用に設計されていないことがわかりました...

できれば、大きなデータ用に設計されており、numpy とうまく相互運用できるpytablesの使用を検討してください。ただし、Mongo は特定の分散アプリケーションに最適ですが、pytables はそうではありません。

于 2012-08-31T14:02:01.533 に答える
0

配列を MongoDB 内に直接格納する場合は、$slice演算子を使用して配列の連続したサブセットを取得することもできます。2D 配列を 1D 配列に線形化することができ、$slice演算子は行列の行を取得しますが、列を選択したり、一般的に不連続なインデックスを選択したりする場合は、うまくいきません。

の背景$slice

于 2012-08-31T14:08:51.583 に答える