Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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函数适用于标量,但不适用于向量,请给我一个错误";只有大小为1的数组才能转换为Python标量;_Python_Arrays_Numpy_Math - Fatal编程技术网

Python函数适用于标量,但不适用于向量,请给我一个错误";只有大小为1的数组才能转换为Python标量;

Python函数适用于标量,但不适用于向量,请给我一个错误";只有大小为1的数组才能转换为Python标量;,python,arrays,numpy,math,Python,Arrays,Numpy,Math,我是python新手,对matlab有一些背景知识。 我试图为高斯核编写一个均值为0的函数。 这是我的密码: import numpy as np import math def GaussainKernel(x,sigma): xx = np.array(x) return 1/(np.sqrt(2*math.pi*sigma**2))*math.exp(-(xx*xx)/(2*sigma**2)) 如果传递sigma和x的标量,则此操作有效,例如: GaussainKer

我是python新手,对matlab有一些背景知识。 我试图为高斯核编写一个均值为0的函数。 这是我的密码:

import numpy as np
import math

def GaussainKernel(x,sigma):
    xx = np.array(x)
    return 1/(np.sqrt(2*math.pi*sigma**2))*math.exp(-(xx*xx)/(2*sigma**2))
如果传递sigma和x的标量,则此操作有效,例如:

GaussainKernel(1, 1)
给我答案:

0.24197072451914337
现在如果我想传递x的向量,比如:

x = np.array([0,1,2])
GaussainKernel(x, 1)
我得到以下错误:

TypeError: only size-1 arrays can be converted to Python scalars
这是由于术语
x*x
x**2


非常感谢您的帮助。

math.exp
是一个Python函数,不接受向量作为输入。用
np.exp
替换它,一切都将按预期工作


此外,您可能希望将
math.pi
替换为
np.pi
,以摆脱一个导入。

math.exp
是一个Python函数,不接受向量作为输入。用
np.exp
替换它,一切都将按预期工作

此外,您可能希望将
math.pi
替换为
np.pi
,以摆脱一个导入