python - Numpy 指数无法正常工作

标签 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

谁能帮帮我,好吗?

最佳答案

当您打算使用 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/

相关文章:

python - 使用管道进行交互式通信是行不通的。我也尝试过flush()。我究竟做错了什么?

python - 将 Pytorch model.state_dict() 保存到 s3

python - 如何使用分类器算法对单个文本进行分类

python - AttributeError: 'module' 对象没有属性 'hist'

python - 为什么 networkx 每次运行重绘我的图形都不一样?

python - 合并两个 numpy 数组并删除重复项?

python - 如何提高这段 Python 代码的性能?

Python Pandas - 将多个电子表格中的特定选项卡合并为一个

python - 用python读取 float

python - 如何删除 seaborn 散点图顶部和底部的空白