【发布时间】:2017-12-25 07:46:11
【问题描述】:
我在 Python 中有以下高斯方程:
numpy.exp((-(x-m)**2)/(2*sigma))
假设x是一个矩阵。
但是,方程式不会运行,并且我收到以下错误:
AttributeError: 'Float' object has no attribute 'exp'
我该如何解决这个问题?
EDIT-1
进行以下编辑:
map(float(),np.exp((-(x-m)**2)/(2*sigma)))
引发错误:
TypeError: 'float' object is not callable
EDIT-2
这是值x的样本:
[[-0.20646505 0.07763347 -0.16161097 0.370439 ]
[-0.91295327 -0.73768934 -0.78909055 0.06156045]
[-0.37242104 0.51828245 -1.16138222 -0.02489585]
[-1.07890926 -0.29704036 -1.7888618 -0.3337744 ]]
m = 5
sigma = 1
谢谢。
【问题讨论】:
-
你做过类似
numpy = float()的事情吗?? -
如果我尝试执行“np.exp(float((-(x-m)**2)/(2*sigma)))”或“float(np.exp((-(x-m )**2)/(2*sigma)))”,我得到错误:“TypeError:只有长度为1的数组可以转换为Python标量”
-
确实很清楚!只有
[1]可以转换为1,而不是[1,2,3,4],因为 python 无法将列表转换为浮点数。您可以使用map(float(),multi_dimensional_array)将数组中的每个值转换为浮点数! -
非常感谢。即使我这样做,我也会得到“TypeError:'float' object is not callable”。请查看我的问题中的修改。
-
你为什么使用 python 2.7 ?您应该尝试使用 python3.x
标签: python numpy math gaussian algebra