判断numpy的array是否为空

定义了一个距离函数,计算两点的距离,其中第二个参数想设置为默认参数

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);

你可能感兴趣的:(numpy)