Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 由于阵列中存在问题,此代码未运行_Python_Python 3.x_Numpy - Fatal编程技术网

Python 由于阵列中存在问题,此代码未运行

Python 由于阵列中存在问题,此代码未运行,python,python-3.x,numpy,Python,Python 3.x,Numpy,基本上,代码给出了错误: TypeError: only size-1 arrays can be converted to Python scalars 分两行 我寻找其他函数来处理数组,但没有任何效果 pulse = np.array((-1/(math.sqrt(2*pi)/(dev **3))) * term) pulse = pulse*np.array(math.exp((-0.500/dev**2)*term ** 2)) # the error happens here 因

基本上,代码给出了错误:

TypeError: only size-1 arrays can be converted to Python scalars
分两行

我寻找其他函数来处理数组,但没有任何效果

pulse = np.array((-1/(math.sqrt(2*pi)/(dev **3))) * term)

pulse = pulse*np.array(math.exp((-0.500/dev**2)*term ** 2)) # the error happens here
因为表达式:
math.exp((-0.500/dev**2)*term**2)


如注释中所述,数学函数
math.exp
处理标量数,因此当您将数组传递给它们时,它们将失败。您可能希望使用numpy等效函数

一般来说,numpy足够全面,不需要使用任何数学函数。请参阅下面的代码,其中定义了简单数组,以及numpy和math中两个exp函数的行为:

导入数学
将numpy作为np导入
a1=np.数组([1,2,3])
ea1=np.exp(a1)
ea2=数学表达式(a1)
在上面的代码中使用
np.exp
时,您将得到一个数组:

阵列([2.71828183,7.3890561,20.08553692])

在上面的代码中使用
math.exp
时,将出现以下错误:

TypeError:只有大小为1的数组才能转换为Python标量

因此,当您使用numpy函数时,代码将正常工作,如下所示:

pulse=-1/(np.sqrt(2*pi)/(dev**3))*项
脉冲=脉冲*np.exp(-0.500/dev**2)*项**2)
频谱=w*np.exp(-1*w*平均值)*np.exp(-1*w**2*(开发**2/2))

请发布整个程序。在你给我们看整个程序之前,我们不知道到底出了什么问题。该错误通常是因为您试图使用一个函数,该函数用于
dev
term
阵列上的单个数字?你能创建一个吗?
math.exp
只适用于标量和单个数字。如果向其传递一个具有多个值的数组,则会出现此错误
np.exp
将使用数组输入。
spectrum = w*math.exp(-1*w*mean)*math.exp(-1 * w ** 2 * (dev ** 2 / 2)) # here the same error