【发布时间】:2020-08-19 10:46:18
【问题描述】:
我想从保存图像数据的字典中获取样本。 Code 1 展示了一个简单的例子:
代码 1:
import numpy as np
a = dict(data_key_1=np.random.random((512, 512, 3)),
data_key_2=np.random.random((512, 512, 3)),
data_key_3=np.random.random((512, 512, 3)),
data_key_4=np.random.random((512, 512, 3)),
data_key_5=np.random.random((512, 512, 3)),
data_key_6=np.random.random((512, 512, 3)),
data_key_7=np.random.random((512, 512, 3)),
data_key_8=np.random.random((512, 512, 3)),
data_key_9=np.random.random((512, 512, 3)),
data_key_10=np.random.random((512, 512, 3))
)
sample_keys = ['data_key_2', 'data_key_1', 'data_key_7', 'data_key_4']
所需的输出:
输出应包含由sample_keys 列表中的项目指定的键处的图像,存储在a 字典中。
我的尝试:
我认为它可以像Code 2 中所示的nympy 的精美索引一样完成,但得到了Error 1。
代码 2:
a[sample_keys]
错误 1
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-317-bf897da15ff6> in <module>
----> 1 a[sample_keys]
TypeError: unhashable type: 'list'
简单的解决方案:
我意识到我可以使用Code 3 中的 for 循环来实现,但我对更“优雅”(即没有循环,代码行越少)的解决方案感兴趣。
代码 3:
X = []
for image_id in sample_keys:
X.append(a[image_id])
对于获得所需输出的任何帮助,我将不胜感激。提前致谢。
【问题讨论】:
标签: python dictionary numpy-ndarray