Python:如何使用列表作为具有常数co-efficient的参数?

Python:如何使用列表作为具有常数co-efficient的参数?,python,arrays,list,function,numpy,Python,Arrays,List,Function,Numpy,我正在使用Python将函数及其参数绘制为列表(作为求解微分方程程序的一部分)。首先,我的自变量存储在列表x_array=[xi]中,其中xi是初始值。然后我在while循环中使用这个数组,其中的线x+=dx和x\u数组。append(x)允许我根据需要填充这个数组 我遇到的问题是,当我试图绘制一个分析函数时 具体来说,这一行行不通: plt.plot(x_array, 10*np.cos(3*x_array), label = "Analytical Solution") 但这句话很管用:

我正在使用Python将函数及其参数绘制为列表(作为求解微分方程程序的一部分)。首先,我的自变量存储在列表x_array=[xi]中,其中xi是初始值。然后我在while循环中使用这个数组,其中的线x+=dxx\u数组。append(x)允许我根据需要填充这个数组

我遇到的问题是,当我试图绘制一个分析函数时

具体来说,这一行行不通:

plt.plot(x_array, 10*np.cos(3*x_array), label = "Analytical Solution")
但这句话很管用:

plt.plot(x_array, 10*np.cos(x_array), label = "Analytical Solution")
这里唯一的区别是cos(3*x_数组)参数中的常量标量系数3

这是我收到的错误消息:ValueError:x和y必须具有相同的第一维度。所需的库numpy和matplotlib已经导入,因此没有问题


在仍然使用列表的情况下,什么样的正确语法允许我在参数中用常数co-efficient绘制函数

尝试使用
np.array(x\u array)

或者,使用列表理解:
[3*i代表x_数组中的i]

plt.plot(x_array, 10*np.cos(3*np.array(x_array)), label = "Analytical Solution")


x_数组
实际上不是数组,而是python列表

下面是发生的情况:

x_array = [1,2,3]  #as an example
x_array*3 = [1,2,3,1,2,3,1,2,3]  # that's what *3 after a list does
相反,如果将x_数组转换为numpy数组,乘法将按预期工作

x_array = np.array(x_array) # array([1,2,3])
x_array = x_array *3 # array([3,6,9])

请记住,在Python中,可以将列表乘以标量。结果是一个更长的列表:
x=[1];y=3*x;print y
获取[1,1,1]。我如何编写它,使列表中的每个元素都乘以3,而不是重复x三次?
x_array = np.array(x_array) # array([1,2,3])
x_array = x_array *3 # array([3,6,9])