Python FloatingPointError仅在特定程序中显示

Python FloatingPointError仅在特定程序中显示,python,numpy,underflow,Python,Numpy,Underflow,我在两个程序中编写了相同的代码。但是,我只在运行一个程序时收到错误 以下是使用的文件: #!/usr/bin/env python #FileName: test.py import numpy as np import math mu = 0 sigma = 3 x_at_mean = math.pow(math.e, -(math.pow(mu, 2) / 2*math.pow(sigma,2))) / (sigma*math.sqrt(2*math.pi)) alpha = lambd

我在两个程序中编写了相同的代码。但是,我只在运行一个程序时收到错误

以下是使用的文件:

#!/usr/bin/env python

#FileName: test.py
import numpy as np
import math
mu = 0
sigma = 3

x_at_mean = math.pow(math.e, -(math.pow(mu, 2) / 2*math.pow(sigma,2))) / (sigma*math.sqrt(2*math.pi))
alpha = lambda index_array, i,j: ((((np.e**(-((np.sqrt((index_array[0]- i)**2 + (index_array[1]-j)**2) - mu)**2)/(2*sigma**2)))/(sigma*np.sqrt(2*np.pi)))*150) / x_at_mean)
xyz = np.indices((450,450))

print alpha(xyz, 35,35)
下面是使用完全相同代码的不同文件中的函数:

def gfx_create_fake_tem2(self, *args):
    mu = 0
    sigma = 3

    x_at_mean = math.pow(math.e, -(math.pow(mu, 2) / 2*math.pow(sigma,2))) / (sigma*math.sqrt(2*math.pi))
    alpha = lambda index_array, i,j: ((((np.e**(-((np.sqrt((index_array[0]- i)**2 + (index_array[1]-j)**2) - mu)**2)/(2*sigma**2)))/(sigma*np.sqrt(2*np.pi)))*150) / x_at_mean)        
    xyz = np.indices((450,450))  
    print alpha(xyz, 35, 35) 
这是我尝试调用函数时遇到的错误:

Traceback (most recent call last):
File "/home/ian/python/tsase/xyz/xyz2.py", line 127, in <lambda>
  self.draw_tem.connect("clicked", lambda w: self.event_changeTem())
File "/home/ian/python/tsase/xyz/xyz2.py", line 495, in event_changeTem
  self.gfx_render()
File "/home/ian/python/tsase/xyz/xyz2.py", line 610, in gfx_render
  self.gfx_create_fake_tem2()
File "/home/ian/python/tsase/xyz/xyz2.py", line 921, in gfx_create_fake_tem2
  ie.gfx_create_fake_tem2()
File "/home/ian/python/tsase/xyz/imageEval.py", line 249, in gfx_create_fake_tem2
  print alpha(xyz, 35,35)
File "/home/ian/python/tsase/xyz/imageEval.py", line 247, in <lambda>
  alpha = lambda index_array, i,j: ((((np.e**(-((np.sqrt((index_array[0]- i)**2 + (index_array[1]-j)**2) - mu)**2)/(2*sigma**2)))/(sigma*np.sqrt(2*np.pi)))*150) / x_at_mean)
FloatingPointError: underflow encountered in divide
回溯(最近一次呼叫最后一次):
文件“/home/ian/python/tsase/xyz/xyz2.py”,第127行,在
self.draw\u tem.connect(“单击”,lambda w:self.event\u changeTem())
文件“/home/ian/python/tsase/xyz/xyz2.py”,第495行,在事件项中
self.gfx_render()
文件“/home/ian/python/tsase/xyz/xyz2.py”,第610行,在gfx_渲染中
self.gfx_create_fake_tem2()
文件“/home/ian/python/tsase/xyz/xyz2.py”,第921行,在gfx\u create\u fake\u tem2中
即gfx_创建_伪_tem2()
文件“/home/ian/python/tsase/xyz/imageEval.py”,第249行,在gfx\u create\u fake\u tem2中
打印alpha(xyz,35,35)
文件“/home/ian/python/tsase/xyz/imageEval.py”,第247行,在
alpha=lambda指数数组,i,j:(((np.e**(-(np.sqrt((指数数组[0]-i)**2+(指数数组[1]-j)**2)-mu)**2)/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))*150)/x_平均值)
FloatingPointError:在divide中遇到下溢
我不明白是什么导致它在一个实例中正确运行,在另一个实例中出错。我没有传入或传出任何变量,也没有使用任何全局变量


有人知道这是什么原因吗?

您是否使用相同版本的python在同一个平台上运行这两个程序?是的,我知道。如果这很重要的话,那就是Python2.7.3。我希望这只是64伏32位的问题。除此之外我没有任何线索。我无法在我的系统上复制它。。。函数所属的类有什么奇怪的地方吗?也许每个程序的numpy设置不同?