h5pyデータセットの古いアイテムの1つを操作し、古いものを削除して新しいアイテムを追加します。h5pyデータセットのアイテムは削除されますが、ファイルサイズは2倍になります
私は__delitem__()
関数を使用して古いデータセット項目を削除します。 f5pyファイルのkeys
からその項目を削除したようです。しかし、ファイルサイズは2倍になります。実際にh5pyデータセットの項目を削除するためのアドバイスはありますか?どうもありがとう。
これは私のコードです:元h5pyファイルの
import numpy as np
import h5py
# suppose I have hdf5 file names stored in: h5_files
for name in h5_files:
roll_images = []
with h5py.File(name, "a") as f:
x = f["x_data"]
np_x = np.array(x)
# do something to np_x, but keep dtype and shape the same as x.
f.__delitem__("x_data")
f.create_dataset("x_data", data = np_x)
サイズは次のとおりです。997.3メガバイト。しかし、上記のコードを実行した後に、ファイルサイズが約2倍である:2.0ギガバイト
同様の質問がここで尋ねられました:http://stackoverflow.com/questions/1124994/removing-data-from-a-hdf5-file。 "repack"ツールを使用して、ファイル内の領域を回復することができます。 –