零排序数组的python减法

时间:2013-07-14 21:27:32

标签: python numpy rank subtraction

我试图减去两个零排名的numpy数组a和b。 我希望a-b在它们的大小不同时返回错误。 例如,如果shape(a)= [300,]和shape(b)= [450,]; a-b返回一个形状数组[300,450]。我宁愿让程序返回错误。

2 个答案:

答案 0 :(得分:1)

您可以尝试这种方法:

def mySubtract(a, b):
    if a is None or b is None or a.shape != b.shape:
       sys.stderr.write("a and b don't have the same shape!\n")
       raise ValueError("a and b don't have same shape!")
    return a-b

我不确定“返回错误”是什么意思,但如果您只想返回无效结果而不是引发ValueError异常,则可以只改为return Nonereturn "a and b don't have the same shape!"

请记住,例行程序的调用者需要知道如何处理这些特殊错误返回码。所以一般来说,异常可能是一种更清洁的方法。

答案 1 :(得分:0)

您可能希望查看异常。这里有一些伪代码可以指出你正确的轨道:

if a.size() != b.size():
    raise Exception("Invalid sizes")