Numpy指数不能正常工作

时间:2016-05-21 19:12:04

标签: python numpy matplotlib plot

我在Python上写了这个简单的代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-400,400,80)
y = np.exp(-1/35*np.absolute(x))

plt.plot(x,y)
plt.show()

这是我得到的图表:

enter image description here

为什么计算错了? 我用Octave做了同样的图:

enter image description here

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

当您打算使用浮点时,您正在使用整数运算。

试试这个:

y = np.exp(-1.0/35*np.absolute(x))

在Python2中,<int>/<int>产生一个向下舍入的整数。在Python3中,相同的表达式产生一个浮点值。

实现同样结果的其他方法是:

  • y = np.exp(float(1)/35*np.absolute(x))
  • from __future__ import division ... y = np.exp(1/35*np.absolute(x))
  • 使用Python3。