gpt4 book ai didi

python - 计算数组列表的概率时出错

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:38 25 4
gpt4 key购买 nike

可以通过简单地将每个元素的值除以所有数组元素的总和来为数组的每个元素分配一个概率。我正在尝试使用 python 来处理一长串 numpy 数组。我的代码:

def calc_probs(self, array_list):

for array in array_list:
buffer=array.astype("float")
s=sum(buffer)
for e in np.nditer(buffer, op_flags=["readwrite"]):
e/=s
self.probs.append(buffer)

此代码应该可以正常工作。事实上,将它输入到 IPython 的交互模式时它是有效的。结果就是我想要的结果。但是,如果我将代码保存到一个文件中并运行,我总是会得到以下 ValueError:

ValueError: non-broadcastable output operand with shape () doesn't match the broadcast shape (10)

我不明白为什么会出现这个错误,尤其是从文件运行时。任何人都可以向我解释一下并帮助解决问题吗?非常感谢!

最佳答案

sum__builtin__.sum,它不知道如何对 NumPy 数组求和,所以只返回未更改的数组。发生错误是因为您试图将奇异矩阵 e 除以 10x10 矩阵 s

你想要s = np.sum(buffer)

整个代码可以简化为:

self.probs.append(array / np.sum(array))

关于python - 计算数组列表的概率时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com