numpy np.exp()将值加倍

zpjtge22  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(122)

我想画一个图,但是我得到的y值是我应该得到的两倍。
示例:

import numpy as np

def f(x):
    return np.exp(2*x)

x_plot=[0,1,2,3]
print(f(x_plot))

我得到以下结果:

[ 1.          2.71828183  7.3890561  20.08553692  1.          2.71828183
  7.3890561  20.08553692]

我如何绘制一个图,因为x_plot有4个值,f(x_plot)有8个值。
我尝试将numpy更改为math,但仍然没有得到值。

x4shl7ld

x4shl7ld1#

x_plot是一个 list,不是一个数组。乘以一个list和乘以一个数组是不一样的。
对于列表,乘以n会重复列表n次。

>>> 2 * [0, 1, 2, 3]
[0, 1, 2, 3, 0, 1, 2, 3]

对于数组,乘以n是按元素进行的,所以

>>> 2 * np.array([0, 1, 2, 3])
array([0, 2, 4, 6])

你可以看到,它不是np.exp重复你的输入值,它是一个列表的乘法。
要确保你的参数是一个数组,然后再乘以它,调用np.asarray

def f(x):
    return np.exp(2*np.asarray(x))

x_plot=[0,1,2,3]
print(f(x_plot))
# [  1.           7.3890561   54.59815003 403.42879349]

相关问题