50,000x50,000 の疎行列/2 次元配列を保持する必要があり、セルの約 5% が均一に分散され、空ではありません。私はする必要があります:
編集numpy/scipy でこれを行う必要があります。明確でない場合は申し訳ありません。また、要件を追加しました。
- DB から 5% の空でないデータを読み取り、それをマトリックス/2 次元配列セルにできるだけ早く割り当てます。
- できるだけ少ないメモリを使用してください。
- ファンシー インデックスを使用します (たとえば、列内のすべての空でない値のインデックスを取得します)。これは、メモリと構築時間のほうが重要です。
- 一度構築されると、マトリックスは変更されません。
- ただし、できれば O(1) のメモリと時間で転置したいと思います。
これを達成する最も効率的な方法は何ですか?「空の」セルを示すために、ゼロの代わりに nan を保持できますか? (0 は私にとって有効な値です)、nansum、nanmean を効率的に実行できますか? そうでない場合、特定の列/行のゼロ以外のすべてのインデックスと値を効率的に取得できますか?