将字典中的数组转换为数组列表
Posted
技术标签:
【中文标题】将字典中的数组转换为数组列表【英文标题】:convert arrays in dictionary into list of arrays 【发布时间】:2020-12-24 13:32:34 【问题描述】:我有一本名为“电压”的字典,其中包含 206 个项目,如图所示。每个项目都是 (25;3;1) 的数组。我想将字典转换为数组列表并将其作为输入以使用 model.fit() 训练模型
我尝试将“带有数组的字典”(电压)作为模型的输入。但它给出了以下错误。
model.fit(x=voltage, y=output, steps_per_epoch=None, epochs=1000)
ValueError: No data provided for "input_1". Need data for each key in: ['input_1']
后来我尝试将“带有数组的字典”转换为“数组列表”
temp = []
input= []
for key, value in voltage:
temp = [key,value]
input.append(temp)
ValueError Traceback (most recent call last)
<ipython-input-26-8b0eb6392467> in <module>
2 input= []
3
----> 4 for key, value in voltage:
5 temp = [key,value]
6 input.append(temp)
ValueError: not enough values to unpack (expected 2, got 1)
我试过了,但出现值错误。
请帮帮我。
谢谢你:)
已编辑 正如 Geethesh 所说,我尝试了这段代码,它已将我的字典转换为数组列表,但形状很奇怪。最初,我字典中的项目的形状是 (25,3,1)
for value, key in voltage.items():
temp = [key,value]
input.append(temp)
np.shape(input)
This gives me a shape of (1, 206, 2)
但我需要 (206, 25, 3, 1) 的形状。列出 206 个样本,每个样本的大小为 (25,3,1)。
如何更改列表的形状??
【问题讨论】:
for key, value in voltage:
应该是for key, value in voltage.items():
您可以在代码块中发布您的预期输出吗?只有几行,可能显示两个不同的键
@RichieV .Hi。我已经编辑了这个问题。请检查并让我知道您是否清楚:)
【参考方案1】:
你必须使用
for value, key in voltage.items():
input.append(value)
你也可以使用列表推导
input= [value for value, key in voltage.items()]
【讨论】:
感谢您的回复。您的建议有助于我将字典转换为数组列表。现在我想将列表中所有数组的形状更改为 (25;3 ;1).我需要这个形状作为模型的输入。 ValueError:检查输入时出错:预期 input_4 有 4 个维度,但得到了形状为 (2, 1) 的数组。如果我在不更改形状的情况下传递数组列表,则会出现此错误。但在转换为列表之前,字典中的所有数组都处于形状(25;3;1)以上是关于将字典中的数组转换为数组列表的主要内容,如果未能解决你的问题,请参考以下文章
将一个字典内的内value转换为集合:返回一个数组,此数组中包含输入字典的键值对中的数组的所有元素(为NSArray添加category)