私はHDF5データフォーマットを使用して約3000個の配列を保存しようとしています。データnumpyのの不規則な性質のためには、一般的なオブジェクトクラスを使用するためのアレイが5306から121999までの長さでnp.float64異なるサイズのh5pyアレイで保存する
を変える私が Object dtype dtype('O') has no native HDF5 equivalent
エラーを取得しています。
私の考えは、すべての配列を121999の長さにして別のデータセットにサイズを格納することでした。
しかし、これはスペースが非常に非効率的なようですが、よりよい方法はありますか?
EDIT:明確にするために、私はdtype = np.float64
の3126の配列を保存したいと思います。私はそれらをlist
に格納しておき、h5pyがルーチンを実行するときには長さが異なるためdtype = object
の配列に変換されます。それを説明するには、次の
a = np.array([0.1,0.2,0.3],dtype=np.float64)
b = np.array([0.1,0.2,0.3,0.4,0.5],dtype=np.float64)
c = np.array([0.1,0.2],dtype=np.float64)
arrs = np.array([a,b,c]) # This is performed inside the h5py call
print(arrs.dtype)
>>> object
print(arrs[0].dtype)
>>> float64
A 3000個のサブ配列(dtypeオブジェクト)を持つ1つの配列を保存しようとしていますか、またはそれぞれがdtype floatを持つ3000個の配列を保存しようとしていますか? 2つまたは3つの配列を持つ小さな例を挙げてください。 – hpaulj
編集で –
と明記しました。 'arrs'は' h5py'が保存できないオブジェクト配列です。 'a'、' b'、 'c'を別々の' datasets'として保存する必要があります。これらの配列は 'datagroup'の要素になり、グループとの辞書インターフェースを使うことができます。 – hpaulj