ValueError:无法将输入数组从形状(6)广播到形状(1)

时间:2019-05-08 11:51:22

标签: python

我做了一个常数值的向量。向量是(1行,6列)。然后,我在另一个函数中调用向量,并且我想使用向量的每个元素进行其他计算。问题是出现以下错误:

ValueError:无法将输入数组从形状(6)广播到形状(1)

为什么?有没有人可以帮助我? 最好的问候

n=6
F = np.ones([1,n])  
F = F*0.4

# F: [[0.4 0.4 0.4 0.4 0.4 0.4]] 
# Other function
str=np.zeros([1,n])
for i in range(0, len(F)):
    str[i] = 1000 * F[i]

# ValueError: could not broadcast input array from shape (6) into shape (1)

1 个答案:

答案 0 :(得分:1)

您的F不是值列表,而是一个值列表的列表。通过围绕您的价值观的额外[],我可以看到这一点。因此,当您进行计算str[i] = 1000 * F[i]时,您将使用2个列表。您可以尝试用str[0][i] = 1000 * F[0][i]替换该行以访问外部列表的第0个元素(这只是值的列表),然后从该列表中选择第i个值。

这可能不完全是您要寻找的答案,可以帮助您获得良好答案的是发布完整的追溯。奇怪的是,您对错误消息的了解比单行ValueError多得多,在您的问题中张贴更多的信息将非常有用!您还可以添加Fd_ULS的定义。