定义了一个距离函数,计算两点的距离,其中第二个参数想设置为默认参数
def get_distance(Location1,Location2=None):
if Location2==None:
Location2=np.zeros(Location1.size)
return np.linalg.norm(Location1-Location2);
m=np.array([10,12,68])
n=np.zeros(3)
get_distance(m)#运行没问题
get_distance(m,n)#运行出错
错误信息如下
The truth value of an array with more than one element is ambiguous.
分析:并不是判断n是否为空,而是依次判断n的所有元素是否为空,得到的是[True,True,True]
因此,numpy的array不能用以下方式判断是否为空
修改如下
def get_distance(Location1,Location2=None):
if list(Location2)==None:
Location2=np.zeros(Location1.size)
return np.linalg.norm(Location1-Location2);