检索给定文本名称的hdf5索引

2024-09-30 19:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个hdf5数据库,有3个键(功能、图像ID、索引)。图像id和索引各有1000个条目。你知道吗

问题是,虽然我可以通过以下方式获得第10张图片:

dbhdf5 ["image_ids"][10]
>>> u'image001.jpg'

我想做相反的操作,即通过传递图像名称来查找索引。比如:

dbhdf5 ["image_ids"="image001.jpg"]
or 
dbhdf5 ["image_ids"]["image001.jpg"]
or
dbhdf5 ['index']['image001.jpg']

我已经尝试了我能想到的每一种变体,但似乎找不到一种方法来检索图像的索引,因为它的id。我得到的错误,如“字段名只允许复合类型”


Tags: or图像image功能id数据库ids方式
1条回答
网友
1楼 · 发布于 2024-09-30 19:27:04

你所尝试的是不可能的。HDF5通过存储数组来工作,数组可以通过数字索引访问。你知道吗

假设您还管理文件的创建,您可以将数据存储在单独的命名数组中:

\index
   \  image001.jpg
   \  image002.jpg
   ...
\features
   \  image001.jpg
   \  image002.jpg
   ...

因此您可以通过名称访问它们:

dbhdf5['features']['image001.jpg']

如果文件是由其他人生成的,则必须自己存储密钥,例如使用dict:

lookup = {}
for i, key in enumerate(dbhdf5['image_ids'][:]):
    lookup[key] = i

并通过这个间接的方式访问它们

dbhdf5['index'][lookup['image001.jpg']]

相关问题 更多 >