私はpythonが初めてで、ファイルからデータの「ブロック」を読み込もうとしています。ファイルは次のように書かれています。
# Some comment
# 4 cols of data --x,vx,vy,vz
# nsp, nskip = 2 10
# 0 0.0000000
# 1 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 2 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 500 0.99999422
# 1 4
0.5057E+03 0.7392E-03 -0.6891E-03 0.4700E-02
0.3777E+03 0.9129E-03 0.2653E-04 0.9641E-03
0.2497E+03 0.9131E-03 0.7970E-04 0.8173E-03
0.1217E+03 0.9131E-03 0.1378E-03 0.6586E-03
and so on
ここで、これらの多くのブロックから 1 つのデータ ブロックのみを指定して読み取ることができるようにしたいと考えています。データの読み取りに使用numpy.loadtxt('filename',comments='#')
していますが、ファイル全体を一度にロードします。オンラインで検索したところ、誰かが numpy io ルーチンのパッチを作成して読み取りブロックを指定しましたが、主流の numpy にはありません。
gnuplot でデータのブロックを選択する方がはるかに簡単ですが、分布関数をプロットするルーチンを作成する必要があります。特定のブロックの読み取りを理解できれば、Python の方がはるかに簡単です。また、すべての視覚化コードを IDL と gnuplot から python に移行しているので、複数のパッケージに散らばっているのではなく、すべてを python に収めると便利です。
Python内からgnuplotを呼び出し、ブロックをテーブルにプロットし、出力をPythonの配列に割り当てることを考えました。しかし、私はまだ始めたばかりで、それを行うための構文を理解できませんでした。
この問題を解決するためのアイデア、指針は非常に役立ちます。