尝试除了阵列的形状

时间:2017-12-13 13:49:46

标签: python-3.x numpy

我在使用函数和try except语句时遇到了一些麻烦。 我想要的是与以下示例脚本类似 我想根据输入数组的形状引发错误。我有两个选项shape = (4,)shape = (1,)

def simple_func(a, b):
    try:
        return (a / b)
    except:
        print('Error Raised')
        a = other_function(a[0], a[1], a[2], a[3])
        b = other_function(b[0], b[1], b[2], b[3])
        return (a / b)

我知道相同的功能,相反的功能更简单(下面)。这是真的,但我认为在80%的情况下ab的形状都有shape = (1,)所以我希望它尽可能快地计算...

def simple_func2(a, b):
    try:
        a = other_function(a[0], a[1], a[2], a[3])
        b = other_function(b[0], b[1], b[2], b[3])
        return (a / b)
    except IndexError:
        print('Error Raised')
        return (a / b)

那么存在一个方法或异常,所以我可以使用第一个函数?这是因为我没有得到它来提出我想要的例外。此刻我只看到了一种使用If语句的方法。

other_function有4个输入,结果是1输出(返回),一个简单的示例做了一些简单的事情:

def other_function(a,b,c,d):
    return(a + b + c + d)

1 个答案:

答案 0 :(得分:0)

使用函数other_function和示例一样简单,您的代码简化为

def simple_func2(a, b):
    return numpy.sum(a) / numpy.sum(b)

适用于所有和任何数组形状。