[英]Adding or removing specific rows or columns in an h5py dataset
h5py 並不是真正為這樣做而設計的。 Pandas可能是一個更好用的庫,因為它是圍繞表的概念構建的。
話雖如此,這是如何做到的:
In [1]: f = h5py.File('test.h5')
In [2]: arr = rand(4,4)
In [3]: dset = f.create_dataset('foo',data=arr,maxshape=(2000,2000))
In [4]: dset[:]
Out[4]:
array([[ 0.29732874, 0.59310285, 0.61116263, 0.79950116],
[ 0.4194363 , 0.4691813 , 0.95648712, 0.56120731],
[ 0.76868585, 0.07556214, 0.39854704, 0.73415885],
[ 0.0919063 , 0.0420656 , 0.35082375, 0.62565894]])
In [5]: dset[1:-1,:] = dset[2:,:]
In [6]: dset.resize((3,4))
In [7]: dset[:]
Out[7]:
array([[ 0.29732874, 0.59310285, 0.61116263, 0.79950116],
[ 0.76868585, 0.07556214, 0.39854704, 0.73415885],
[ 0.0919063 , 0.0420656 , 0.35082375, 0.62565894]])
這將從dset
刪除第 1 列。 它通過在將數據集縮小一列之前將第 2 列和第 3 列分別分配給 1 和 2 來實現。 交換下標以刪除第 1 行。如果您要經常這樣做,您可以輕松地圍繞它編寫一個包裝器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.