我在 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()
这是我得到的图表:
为什么会做错计算? 我使用 Octave 做了同样的图表:
谁能帮帮我,好吗?
最佳答案
当您打算使用 float 时,您正在使用整数运算。
试试这个:
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。
关于python - Numpy 指数无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367034/