【发布时间】:2021-05-18 19:06:22
【问题描述】:
我正在尝试从包含 5 个数组的列表中提取特定值。首先,我找到每个数组的最大值并将其定义为 maxElements。然后我尝试将“test_list”中的每个元素与 maxElements 中的每个值进行匹配,以找到特定的索引。但我得到以下错误代码:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我该如何解决这个问题,所以我只能获取列表中每个数组中最大值的索引??
maxElements = np.amax(test_list,axis=1)
res_list = []
for i in range(0, len(test_list)) :
if test_list[i] == maxElements[i] :
res_list.append(i)
【问题讨论】:
-
test_list 是一个 numpy 数组。如果例如test_list = ([1,2,3], [4,5,6]),len(test_list) 将返回 2,因为每个数组元素都是对另一个一维数组的引用。即 test_result[0] 是 [1,2,3] 和 test_result[1] = [4,5,6] 的参考。当您执行 test_list[i] == maxElement[i] 时,您实际上是在尝试将此引用与整数值进行比较。
-
那么如何将 test_list 中的每个值与 maxElement 列表进行比较?
-
你试过'numpy.argmax'吗?它沿给定轴检索最大值的索引。 numpy.org/doc/stable/reference/generated/numpy.argmax.html