我有一个数组列表,如:
array([[ 0.39703756, 0.60296244],
[ 0.47432672, 0.52567328],
[ 0.9785825 , 0.0214175 ],
...,
[ 0.98861711, 0.01138289],
[ 0.98769643, 0.01230357],
[ 0.99783641, 0.99783641]])
我使用以下代码获取每行的最大值并将其转换为列表:
scores=scores.max(axis=1).astype(float)
scores=scores.tolist()
我获得每行的最大值,并且能够将其转换为列表。另外,我想知道哪一列是最大的。即第一行的最大值是0.60,它应该说是1,依此类推。但是,我无法做到这一点怎么做呢?
答案 0 :(得分:1)
您可以使用numpy.argmax
,例如:
x = numpy.array([[1, 2, 3], [2, 4, 1]])
numpy.argmax(x, axis=1)
将返回:
array([2, 1])
答案 1 :(得分:1)
使用numpy.argmax
功能。这将输出最大值的索引,而不是最大值本身。由于此输出索引,它们将是整数,您不需要.astype(float)
import numpy as np
scores=np.array([[ 0.39703756, 0.60296244],
[ 0.47432672, 0.52567328],
[ 0.9785825 , 0.0214175 ],
[ 0.98861711, 0.01138289],
[ 0.98769643, 0.01230357],
[ 0.99783641, 0.99783641]])
scores_max=scores.max(axis=1).astype(float)
scores_arg=scores.argmax(axis=1)
scores_arg=scores_arg.tolist()
print(scores_arg)
答案 2 :(得分:1)
对我而言,解决方案与上述类似但略有改变
array([[ 0.39703756, 0.60296244],
[ 0.47432672, 0.52567328],
[ 0.9785825 , 0.0214175 ],
...,
[ 0.98861711, 0.01138289],
[ 0.98769643, 0.01230357],
[ 0.99783641, 0.99783641]])
scores_arg=scores.argmax(axis=1)
scores_max=scores.max(axis=1).astype(float)
scores_arg=scores_arg.tolist()