我做了一个常数值的向量。向量是(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)
答案 0 :(得分:1)
您的F
不是值列表,而是一个值列表的列表。通过围绕您的价值观的额外[]
,我可以看到这一点。因此,当您进行计算str[i] = 1000 * F[i]
时,您将使用2个列表。您可以尝试用str[0][i] = 1000 * F[0][i]
替换该行以访问外部列表的第0个元素(这只是值的列表),然后从该列表中选择第i个值。
这可能不完全是您要寻找的答案,可以帮助您获得良好答案的是发布完整的追溯。奇怪的是,您对错误消息的了解比单行ValueError
多得多,在您的问题中张贴更多的信息将非常有用!您还可以添加Fd_ULS
的定义。