我想比较两个1x3阵列,例如:
if output[x][y] != [150,25,75]
(output
此处为3x3x3,因此output[x][y]
仅为1x3)。
我收到的错误是:
ValueError: The truth value of an array with more than one element is ambiguous.
这是否意味着我需要这样做:
if output[y][x][0] == 150 and output[y][x][1] == 25 and output[y][x][2] == 75:
或者有更清洁的方法吗?
我正在使用Python v2.6
答案 0 :(得分:7)
答案 1 :(得分:4)
您还应该收到消息:
使用a.any()或a.all()
这意味着您可以执行以下操作:
if (output[x][y] != [150,25,75]).all():
这是因为2个数组或带有列表的数组的比较会产生布尔数组。类似的东西:
array([ True, True, True], dtype=bool)
答案 2 :(得分:3)
转换为列表:
if list(output[x][y]) != [150,25,75]
答案 3 :(得分:0)
a = output[x][y]
b = [150,25,75]
if not all([i == j for i,j in zip(a, b)]):