5

python/numpy.loadtxt でデータをインポートしようとしています。ほとんどのデータでは、これは問題ではありません。たとえば、行が次のようになっている場合です。

0.000000      0.000000      0.000000      0.000000    -0.1725804E-13

この場合、空白を区切り文字として使用できます。残念ながら、データを生成するプログラムは区切り記号を使用せず、固定の列幅のみを使用します (それを変更することはできません)。例:

-0.1240503E-03-0.6231297E-04  0.000000      0.000000    -0.1126164E-02

すべての列が 14 文字であることを簡単な方法で numpy.loadtxt に伝えることはできますか? 他のプログラムが手動で生成するファイルを変更する必要はありません...

編集:

dxwx の提案に基づいて、非常に単純なソリューションを共有すると思いました。私が提供した例では、解決策は次のようになります

a = numpy.genfromtxt('/path/to/file.txt', delimiter = 14)

実際のデータの最初の列の前に追加の空白があり、最後の列と最後の行を使用したくありませんでした。したがって、現在は次のようになります。

a = numpy.genfromtxt('/path/to/file.txt',
                     delimiter = (1,14,14,14,14,14,14), 
                     usecols = range(1,6), skip_footer = 1)

迅速な対応をありがとうございました。

4

2 に答える 2

5

Numpy のgenfromtxtを見てください。これは、セパレーターに整数幅を使用できることを示しています。

于 2013-07-04T10:07:48.930 に答える