我有13个Python NumPy数组:
obj_1=np.array([784,785,786,787,788,789,790,791,792])
obj_2=np.array([716,717,718,730,731,732,721,722,724,726,727])
obj_3=np.array([658,659,660,661,662,663,664,665])
obj_4=np.array([581,582,583,589,590,591,595,597,598,599,601,605,606,613,614])
obj_5=np.array([533,534,535,536,537])
obj_6=np.array([464,469,472,474])
obj_7=np.array([406,409,411,412])
obj_8=np.array([345,346,347,349])
obj_9=np.array([277,278,281,282,283,284,288,296])
obj_10=np.array([217,219,220,223,224])
obj_11=np.array([154,155,156,157,158,159,160,161])
obj_12=np.array([91,92,93,94,95,96,97])
obj_13=np.array([28,29,30,31,32,33,34])
接下来是以下循环:
for i in [obj_1, obj_2, obj_3, obj_4, obj_5, obj_6, obj_7, obj_8, obj_9, obj_10, obj_11, obj_12, obj_13]:
print i in [obj_1, obj_2, obj_3, obj_4, obj_5, obj_6, obj_7, obj_8, obj_9]
我期望得到以下输出:
True
True
True
True
True
True
True
True
True
False
False
False
False
但是我收到了以下错误:
True
True
True
True
True
True
Traceback (most recent call last):
File "<ipython-input-221-c03c1ef308c6>", line 16, in <module>
print i in [obj_1, obj_2, obj_3, obj_4, obj_5, obj_6, obj_7, obj_8, obj_9]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我用相同的数组名称和相同的for循环测试了不同的数组,它们都没有出现错误。
看起来问题可能在于数组的内容,但我无法找到问题所在。
有人知道为什么会发生这种情况吗?
obj_1
到obj_9
将始终在数组列表中吗?只有10、11、12、13不在其中。 - Padraic Cunningham.tolist()
,但我真的不明白你想做什么。 - Padraic Cunninghamobj_3 in [obj_6]
是False
,但obj_7 in [obj_6]
抛出了错误... - Claudiuobj_8 in [obj_6]
也会抛出错误,其余的则会返回False
或True
。obj_7
和obj_8
是否存在某种损坏? - orieger