我在CentOS 7上使用Python3。我想找到在不使用循环的情况下,在多个数组上获得具有最大索引的数组的最快方法(对于数组中的每个索引)。例如,如果我输入
array [0] = [1,3,9,4,6,8,9] 数组[1] = [2,6,3,8,7,4,5] 数组[2] = [6,3,7,9,1,3,6]
我希望输出为
[2,1,0,2,1,0,0]
我尝试过
np.maximum.reduce(array)
并获得整个数组的最大值,以获取整个数组的索引。但是,当我尝试
array.index(np.maximum.reduce(array))
我明白了
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
答案 0 :(得分:2)
尝试使用numpy的argmax
np.argmax(array, axis = 1)
输出
[2 3 3]
答案 1 :(得分:1)
尝试一下:
import numpy as np
import pandas as pd
arr = np.array([[1,3,9,4,6,8,9],
[2,6,3,8,7,4,5],
[6,3,7,9,1,3,6]])
df = pd.DataFrame(arr)
print(df)
result = [df[x].idxmax() for x in df]
print(result)