空の配列を事前に割り当てようとしていると同時に、次のコードを使用してサイズが 19x5 のデータ型を定義しています。
import numpy as np
arr=np.empty((19,5),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])
結果はやや予想外で、19*5*5 の配列になります。ただし、次のことを試みます。
arr=np.empty((19,1),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])
行ごとに適切な長さ (5 フィールド) を与えます。これは明らかに 1D 配列のように見えます。
これを書こうとすると、次のフォーマットのみが許可されます。
np.savetxt(file, arr, delimiter=',', fmt='%s')
これは、単一の文字列を扱っていることを示しています。フラット化されていない 19x5 の形状の構造化配列を取得する方法はありませんか?
主な問題は、これを savetxt で書き込むときに発生します。5 つの列の値をすべて含む csv ファイルが必要です。これは文字列として処理されるため、間違った出力が得られます。