我试图比较来自3个不同数组的同一索引的元素。当我尝试if arr1[i] == arr2[i]
时,我得到The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
。整个功能如下:
def tmr(arr1, arr2, arr3):
arr4 = arr1
for i in range(arr4.size):
if arr1[i] == arr2[i]:
arr4[i] = arr1[i]
else:
if arr2[i] == arr3[i]:
arr4[i] = arr3[i]
return arr4
我比Python更熟悉C++,我真的看不出这为什么不能准确地工作。我也试过这样使用zip:
^{pr2}$
numpy数组函数
np.equal
,np.logical_and
,np.where
-矢量化/广播对于上一个示例中使用
zip
的预期结果,请尝试:对于第一个代码块中的解释,可以使用列表理解:
^{pr2}$根据您的示例,我不确定arr4的默认值,如果
arr1[i] == arr2[i]
和arr2[i] == arr3[i]
,那么将它们保留为上面的None
。在这两种方法提供了不同的答案,但是如果我能正确地解释,第一种方法是期望的行为。在
相关问题 更多 >
编程相关推荐