获取每个数组索引具有最大值的数组

时间:2019-11-01 21:38:55

标签: python arrays

我在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()

2 个答案:

答案 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)