4

ユーザー定義の data-typeを渡して、構造化配列numpy.fromfile(ファイル ヘッダー)を読み取ろうとしています。何らかの理由で、構造化された配列要素がフラットな 1D 配列ではなく 2-D 配列として返されます。

headerfmt='20i,20f,a80'
dt = np.dtype(headerfmt)
header = np.fromfile(fobj,dtype=dt,count=1)
ints,floats,chars = header['f0'][0], header['f1'][0], header['f2'][0]
#                                ^?               ^?               ^?

headerfmtそれらをフラットな 1D 配列として読み取るように変更するにはどうすればよいですか?

4

1 に答える 1

2

が常に 1 になる場合は、次のcountようにします。

header = np.fromfile(fobj, dtype=dt, count=1)[0]

repr配列の にはフィールド名が表示されませんが、フィールド名でインデックスを作成することはできます。

例えば:

import numpy as np

headerfmt='20i,20f,a80'
dt = np.dtype(headerfmt)

# Note the 0-index!
x = np.zeros(1, dtype=dt)[0]

print x['f0'], x['f1'], x['f2']
ints, floats, chars = x

それはあなたの目的にとって理想的であるかもしれないし、そうでないかもしれませんが、とにかく単純です。

于 2013-06-07T17:52:47.987 に答える